DSE图修改顶点属性,

时间:2017-10-23 10:59:36

标签: datastax-enterprise datastax-enterprise-graph

因此,在添加到图形之后,如何修改Vertex的属性,javadocs并不明显。

我试过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驱动程序修改现有的顶点属性。

1 个答案:

答案 0 :(得分: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()