0

我正在使用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 图中某个顶点的所有相邻顶点。

有什么方法可以在 Dse 图中运行“GremlinPipeline”查询?或任何其他方式来做到这一点。

谢谢..!

4

1 回答 1

1

您展示的是旧的 TinkerPop 2 API。DSE Graph 使用TinkerPop 3。在 TinkerPop 3 中,您的代码看起来更像这样:

public static List<Vertex> getAllNeighbour(Vertex vertex) {
    return g.V(vertex).out().toList()
}
于 2017-01-15T10:44:02.413 回答