2016-04-14 61 views
2
g.V(apple).properties("name").drop(); 

這是我嘗試刪除蘋果頂點的財產,但得到一個錯誤如何刪除Titan DB中的屬性?

java.lang.IllegalStateException:因爲它的封閉交易被關閉無法訪問元素和非綁定

基本上我試圖檢查我們是否可以修改TitanDB中的模式? 我通過文檔,但沒有得到任何有關的事情。

回答

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(); 

你在做什麼之前:你得到

java.lang.IllegalStateException

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

錯誤:無法訪問元素,因爲它的封閉交易是封閉的並且未綁定

是說,該交易已經關閉,這意味着也許你是關閉圖。這些行爲中的任何一個都會關閉交易並使其無法使用,因此請檢查您的操作順序。

+0

是的,我承諾transcation。 –

+0

承諾始終關閉交易。提交後重新打開你的圖表,你的財產下降將起作用。 –

+0

讓我檢查一下上面的邏輯是否會起作用 –

4

這可能是因爲你沒有正確迭代負責創建頂點的Traversal

從小鬼控制檯,使用泰坦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頂點的時候。

+0

如何打印屬性,我正在使用intellij –

+0

以及如何刪除屬性 –