g.V(apple).properties("name").drop();
这是我尝试删除apple vertex的属性但是出错
的方法java.lang.IllegalStateException:无法访问元素,因为其封闭的事务已关闭且未绑定
基本上我试图检查一下我们可以修改TitanDB中的模式吗? 我查看了文档,但没有得到任何相关内容。
答案 0 :(得分:5)
可能是您没有正确地迭代负责创建该顶点的Traversal
。
从Gremlin控制台,使用Titan v1.0.0和TinkerPop v3.0.1:
gremlin> graph = TitanFactory.open('conf/titan-cassandra-es.properties')
==>standardtitangraph[cassandrathrift:[127.0.0.1]]
gremlin> g = graph.traversal()
==>graphtraversalsource[standardtitangraph[cassandrathrift:[127.0.0.1]], standard]
gremlin> apple = g.addV().next()
==>v[4296]
gremlin> apple.property('name', 'Apple')
==>vp[name->Apple]
gremlin> apple.values()
==>Apple
gremlin> g.V(apple).properties('name').drop()
gremlin> apple.values()
gremlin>
注意创建.next()
顶点时对apple
的调用。
答案 1 :(得分:1)
以下示例似乎对我有用:
gremlin> produce = g.addVertex();
==>v[12]
gremlin> produce.values();
gremlin> produce.property("name", "apple");
==>vp[name->apple]
gremlin> produce.values();
apple
g.traversal().V(produce).properties("name").drop();
produce.values();
你之前在做什么:
g.V(apple).properties("name").drop();
您遇到的错误
java.lang.IllegalStateException:无法访问元素,因为其封闭的事务已关闭且未绑定
说交易已经关闭,这意味着您可能提交或关闭图表。这些操作中的任何一个都会关闭事务并使其无法使用,因此请检查您的操作顺序。