gpt4 book ai didi

java - 如何以tinkerpop/gremlin 格式而不是DSE 图形格式返回顶点?

转载 作者:太空宇宙 更新时间:2023-11-04 11:57:15 25 4
gpt4 key购买 nike

我试图返回一个刚刚用 Gremlin 创建的顶点(tinkerpop 格式):

DseCluster dseCluster = DseCluster.builder()
.addContactPoint(DbC.dseHost)
.build();
DseSession dseSession = dseCluster.connect();
GraphTraversal traversal = graph.addV(VertexLabels.User)
.property("username", "testuser")
GraphStatement graphStatement = DseGraph.statementFromTraversal(
traversal
);
GraphResultSet grs = dseSession.executeGraph(graphStatement.setGraphName(DbC.graphName));
Vertex v = grs.one().as(Vertex.class);

我遇到了这个异常...

java.lang.ClassCastException:com.datastax.driver.dse.graph.DefaultVertex 无法转换为 org.apache.tinkerpop.gremlin.struct.Vertex

如何更改代码,使其以 gremlin.struct.Vertex 格式返回,而不是 DSE 图形顶点格式?

我正在使用:

<dependency>
<groupId>com.datastax.cassandra</groupId>
<artifactId>dse-driver</artifactId>
<version>1.1.1-beta1</version>
</dependency>
<dependency>
<groupId>com.datastax.cassandra</groupId>
<artifactId>java-dse-graph</artifactId>
<version>1.0.0-beta1</version>
</dependency>

我希望这可以完成,否则从 TitanDB 迁移将会很痛苦..

最佳答案

根据我与 Datastax 团队通过 jira 进行的长时间讨论和电子邮件:

确实可以拥有 Fluent API 并获取纯 Gremlin/tinkerpop 对象。这是可能的,如此处所示 ( java-dse graph 1.x documentation ) 直接在 GraphTraversalSource 上使用 next()、toList() 而不是使用将返回 DSE 对象的executeGraph()。

所以上面的代码改为:

Vertex user = graph.addV("User")
.property("username", "testuser").next();

哪里graphGraphTraversalSource<Vertex,Vertex>对象和Vertexorg.apache.tinkerpop.gremlin.structure.Vertex对象。

关于java - 如何以tinkerpop/gremlin 格式而不是DSE 图形格式返回顶点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41261845/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com