我正在使用Dse 5.x graph
。
在文档中,Datastax表示它与“TinkerTop”兼容。 API。
这下面的gremlin查询在Orientdb(一个基于tinkerTop的图数据库)中运行完美
public static List<Vertex> getAllNeighbour(Vertex vertex) {
List<Vertex> list = new ArrayList<Vertex>();
GremlinPipeline<Vertex, Vertex> vPipe = new GremlinPipeline<Vertex, Vertex>();
vPipe.start(vertex).out();
// Add all neighbors to array list
for(Object oo : vPipe) {
Vertex v = (Vertex) oo;
list.add(v);
}
return list;
}
但是,当我在Dse图表上运行时,它说:
Exception in thread "main" java.lang.ClassCastException: com.datastax.driver.dse.graph.DefaultVertex cannot be cast to com.tinkerpop.blueprints.Vertex
at com.tinkerpop.pipes.transform.VertexQueryPipe.processNextStart(VertexQueryPipe.java:85)
at com.tinkerpop.pipes.transform.VertexQueryPipe.processNextStart(VertexQueryPipe.java:19)
at com.tinkerpop.pipes.AbstractPipe.hasNext(AbstractPipe.java:98)
at com.tinkerpop.pipes.util.Pipeline.hasNext(Pipeline.java:105)
我想要达到的目标是:
在DSE图中获取顶点的所有相邻顶点。
我有什么方法可以跑“GremlinPipeline&#39;在Dse图中查询?或以其他任何方式进行查询。
谢谢..!
答案 0 :(得分:1)
您展示的是旧的TinkerPop 2 API。 DSE图使用TinkerPop 3。在TinkerPop 3中,您的代码看起来更像是这样:
public static List<Vertex> getAllNeighbour(Vertex vertex) {
return g.V(vertex).out().toList()
}