2017-10-23 9 views
0

グラフに追加した後で頂点のプロパティを変更する方法については、javadocsからは分かりません。DSEグラフは頂点のプロパティを変更します。

私はTinkerPop方法を試しました。

GraphTraversalSource g = DseGraph.traversal(dseSession); 
g.V().toStream().forEach(vertex -> vertex.property("name", "Santosh")); 

しかし、私は例外

Exception in thread "main" java.lang.IllegalStateException: Property addition is not supported 
    at org.apache.tinkerpop.gremlin.structure.Element$Exceptions.propertyAdditionNotSupported(Element.java:133) 
    at org.apache.tinkerpop.gremlin.structure.util.detached.DetachedVertex.property(DetachedVertex.java:91) 
    at com.trimble.tpaas.profilex.random.MainGraphConnectivity.lambda$testSchemaCreation$0(MainGraphConnectivity.java:41) 
    at org.apache.tinkerpop.gremlin.process.traversal.Traversal.forEachRemaining(Traversal.java:250) 
    at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801) 
    at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:580) 
    at com.trimble.tpaas.profilex.random.MainGraphConnectivity.testSchemaCreation(MainGraphConnectivity.java:41) 
    at com.trimble.tpaas.profilex.random.MainGraphConnectivity.main(MainGraphConnectivity.java:23) 

私はDSEのJavaドライバまたはその他を使用して、既存の頂点のプロパティを変更する方法を理解するために参照することができますので、質問を取得します。

答えて

0

あなたはDataStaxのJavaドライバーとDSEグラフに接続する場合:そのことについては

g = DseGraph.traversal(dseSession) 

またはTinkerPopドライバ:

graph = EmptyGraph.instance() 
g = graph.traversal().withRemote('conf/remote-graph.properties') 

あなたが受け取る結果がデータベースから切断されています。 TinkerPopでは、その状態を「分離」と呼びます。したがって、g.V()から返された頂点は「切り離された」状態にあり、それらのプロパティを格納するためにデータベースによってサポートされているかのように、直接相互作用することはできません。

すべてのデータベース突然変異は、Traversal API(すなわち、Gremlin)を介して行われるべきである。したがって、グラフのすべての頂点にプロパティを追加する場合は、次のようにします。

g.V().property('name','Santosh').iterate() 
+0

ありがとう、ありがとう。それは理にかなった。また、Traversal APIも機能しました。 –

関連する問題