2016-10-13 7 views
1

Ich möchte in der Java-Konsole kürzesten Weg zwischen zwei Vertices drucken. Ich kann nichts drucken, oder wenn Sie irgendeinen Weg haben, würde ich es zu schätzen wissen.Drucken Sie den kürzesten Pfad zur Java-Konsole mit orientdb

String subquery = "Select shortestpath(17:10, 17:14, BOTH) "; 
Iterable<OrientVertex> result = orientDBGraph.command(new OSQLSynchQuery<OrientVertex>(subquery)).execute(); 
Assert.assertTrue(result.iterator().hasNext()); 
System.out.println(result); 

for (OrientVertex d : result) { 
    System.out.println("Shortest path from " + ((OrientVertex) d.getProperty("$current")).getProperty("name") + " and " 
    + ((Iterable<OrientVertex>) d.getProperty("$target")).iterator().next().getProperty("name") + " is: " 
    + d.getProperty("path")); 
} 
+0

Welche Version verwenden Sie? Können Sie Ihren vollständigen Code veröffentlichen und auspacken? Haben Sie Fehler? –

Antwort

3

enter image description here

Code:

import com.orientechnologies.orient.core.sql.OCommandSQL; 
import com.tinkerpop.blueprints.impls.orient.OrientGraph; 
import com.tinkerpop.blueprints.impls.orient.OrientGraphFactory; 
import com.tinkerpop.blueprints.impls.orient.OrientVertex; 

public class test { 

    public static void main(String[] args) { 
     // TODO Auto-generated method stub 

     String dbName = "ytrewa"; 

     OrientGraphFactory dbfactory = new OrientGraphFactory("remote:127.0.0.1:2424/"+dbName, "root", "root").setupPool(1, 50); 

     OrientGraph g = dbfactory.getTx(); 

     try { 
      String query = "select expand(shortestPath) from (select shortestPath(#9:0,#9:1,BOTH))"; 
      Iterable<OrientVertex> res = g.command(new OCommandSQL(query)).execute(); 

      while(res.iterator().hasNext()){ 
       OrientVertex v = res.iterator().next(); 
       System.out.println("rid: "+v.getId().toString()); 
      } 

     } finally { 
      g.shutdown(); 
     } 

    } 

} 

Ausgang:

rid: #9:0 
rid: #10:0 
rid: #12:0 
rid: #9:1 
+0

Danke für Ihre Hilfe Ich habe versucht, es mit Ihrem Code zu tun, aber nichts kommt heraus. Sie können die gesamte Prozedur vielleicht finden Sie einen Fehler in meinem – Alexa

+1

Ich habe den vollständigen Code hinzugefügt. Bitte beachten Sie, dass sich meine Anfrage etwas von Ihrer unterscheidet. –

Verwandte Themen