如何在Titan DB中删除该属性?

时间:2016-04-14 06:40:43

标签: schema titan gremlin

 g.V(apple).properties("name").drop();

这是我尝试删除apple vertex的属性但是出错

的方法

java.lang.IllegalStateException:无法访问元素,因为其封闭的事务已关闭且未绑定

基本上我试图检查一下我们可以修改TitanDB中的模式吗? 我查看了文档,但没有得到任何相关内容。

2 个答案:

答案 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:无法访问元素,因为其封闭的事务已关闭且未绑定

说交易已经关闭,这意味着您可能提交关闭图表。这些操作中的任何一个都会关闭事务并使其无法使用,因此请检查您的操作顺序。