【发布时间】:2016-08-05 13:28:33
【问题描述】:
g.V(apple).properties("name").drop();
这就是我尝试删除苹果顶点属性的方法,但出现错误
java.lang.IllegalStateException:无法访问元素,因为其封闭事务已关闭且未绑定
基本上我正在尝试检查我们是否可以修改 TitanDB 中的架构? 我浏览了文档,但对此一无所知。
【问题讨论】:
g.V(apple).properties("name").drop();
这就是我尝试删除苹果顶点属性的方法,但出现错误
java.lang.IllegalStateException:无法访问元素,因为其封闭事务已关闭且未绑定
基本上我正在尝试检查我们是否可以修改 TitanDB 中的架构? 我浏览了文档,但对此一无所知。
【问题讨论】:
以下示例似乎对我有用:
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: 无法访问元素,因为它的封闭事务已关闭且未绑定
表示事务已经关闭,这意味着您可能正在提交或关闭图表。这些操作中的任何一个都会关闭事务并使其无法使用,因此请检查您的操作顺序。
【讨论】:
Titan-1 和Tinkerpop-3,它们在java 中具有非常相似的语法。不过前提是一样的。提交关闭事务,因此您需要重新打开图表。
可能是您没有正确迭代负责创建该顶点的 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>
注意在创建apple 顶点时对.next() 的调用。
【讨论】: