2016-10-13 2 views
1

2つの頂点の間のJavaコンソールの最短パスに印刷します。私は何かを印刷することができないか、それを行う方法があればそれを感謝するでしょう。orientdbを使用してJavaコンソールへの最短パスを出力します

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

あなたはどのバージョンを使用していますか?あなたは完全なコードとoutpuを投稿できますか?何かエラーがありますか? –

答えて

3

enter image description here

コード:

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(); 
     } 

    } 

} 

出力:

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

あなたの助けてくれてありがとう、私はあなたのコードでそれをやろうとしましたが、何も出てこない。あなたは全体の手順を置くことができます多分私の中でいくつかのエラーを見つける – Alexa

+1

私は完全なコードを追加しました。私の質問はあなたと少し違うことに注意してください。 –

関連する問題