0

Я использую Dse 5.x graph.DataStax Dse graph Поддержка трубопровода Gremlin

В документации Datastax сообщает, что он совместим с API TinkerTop.

Это ниже гремлина запрос запустить совершенный в 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 на графике Dse? или любым другим способом сделать это.

Спасибо ..!

ответ

1

Что вы показываете, это старый API TinkerPop 2. График DSE использует TinkerPop 3. В TinkerPop 3 ваш код будет выглядеть примерно так:

public static List<Vertex> getAllNeighbour(Vertex vertex) { 
    return g.V(vertex).out().toList() 
}