0

J'utilise Dse 5.x graph.DataStax Dse graphique Support de pipeline Gremlin

Dans la documentation, Datastax dit qu'il est compatible avec l'API 'TinkerTop'.

Cette dessous requête Gremlin course parfaite dans Orientdb (une base de données graphique basée 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; 
    } 

mais, quand je courais ce sur Dse graphique, il dit:

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) 

Qu'est-ce que Je veux atteindre est:

Obtenir tous les vertex voisins d'un sommet dans Graphique DSE.

Y a-t-il un moyen de lancer une requête 'GremlinPipeline' dans un graphe Dse? ou Tout autre moyen de le faire.

Merci ..!

Répondre

1

Ce que vous montrez est l'ancienne API TinkerPop 2. DSE Graph utilise TinkerPop 3. Dans TinkerPop 3 votre code ressemblerait plus à ceci:

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