我想要使用遍歷在遠程Gremlin服務器上獲取修改頂點,但似乎只有在創建頂點的遍歷中我還可以添加屬性,當啓動新的遍歷I屬性不被添加。使用Java/Scala遠程Gremlin服務器圖形突變
斯卡拉/ Java的集羣連接設置代碼:
val mapper = GryoMapper.build()
val cluster = Cluster.build().serializer(new GryoMessageSerializerV1d0(mapper)).create
val client = cluster.connect[org.apache.tinkerpop.gremlin.driver.Client.ClusteredClient]()
val graph = EmptyGraph.instance()
val g = graph.traversal().withRemote(DriverRemoteConnection.using(cluster, "g"))
這個工程:
val v1 = g.addV("person").property("name","stephen").next()
這並不:
g.V(v1.id()).property("age","27")
這並不要麼甚至拋出一個java。 lang.IllegalStateException(propertyAdditionNotSupported),因爲頂點是org.apache.tinkerpop.gremlin.structure.ut il.reference.ReferenceVertex:
v1.property("age","27")
如果我使用一個小鬼控制檯和遠程連接到服務器小鬼我都沒有任何問題。
:remote connect tinkerpop.server conf/remote.yaml
gremlin> :> g.addV('person').property('name','stephen')
==>v[82128]
gremlin> :> g.V(82128).property('age','27')
==>v[82128]
gremlin> :> g.V(82128).valueMap()
==>[name:[stephen],age:[27]]
是Java遠程執行錯誤還是我錯過了什麼?
找到了解決辦法,只好在遍歷後面添加.iterate(),仍試圖理解爲什麼... – user3508638