【发布时间】:2017-05-06 19:43:37
【问题描述】:
我正在尝试返回刚刚使用 Gremlin 创建的 Vertex(以 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 cannot be cast to org.apache.tinkerpop.gremlin.structure.Vertex
如何更改代码以使其以 gremlin.structure.Vertex 格式而不是 DSE Graph Vertex 格式返回?
我正在使用:
<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 迁移会很痛苦..
【问题讨论】:
-
试试
.asVertex()而不是.as(Vertex.class) -
谢谢@ᴘᴀɴᴀʏɪᴏᴛɪs.. asVertex() 返回 dse 图 Vertex,它与 gremlin 结构 Vertex(这是标准)完全不同。
-
我在这里询问了他们对 Fluent API 的决定:datastax-oss.atlassian.net/browse/JAVA-1250
-
即:
WARNING: please make sure that your version of Tinkerpop is compatible. The driver has been compiled and tested against version 3.2.0-incubating; it does NOT provide any compatibility guarantees for older Tinkerpop versions.
标签: java datastax datastax-enterprise-graph