DSE图修改顶点属性,

DSE graph modify vertex properties,

因此,java关于如何在添加到图形中后修改顶点属性的文档并不明显。

我尝试了 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[=11=](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 驱动程序或其他方式修改现有顶点 属性。

当您使用 DataStax Java 驱动程序连接到 DSE Graph 时:

 g = DseGraph.traversal(dseSession)

或与此相关的 TinkerPop 驱动程序:

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

您收到的结果与数据库断开连接。在 TinkerPop 中,我们称该状态为 "detached"。因此,从 g.V() 返回的顶点处于 "detached" 状态,您不能直接与它们交互,就好像它们由数据库支持以存储其属性一样。

所有数据库突变都应通过遍历 API(即 Gremlin)发生。所以,如果你想给图中的所有顶点添加一个 属性,你可以这样做:

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