4

OrientDB の Graph API in Java に問題があります。

問題:

コンソールを介して作成されたいくつかの頂点/エッジを持つ永続的なローカル グラフ データベースから頂点 (OrientVertex または Vertex?) を取得します。

そのため、私が今考えている Document API を使用してデータベースにクエリを実行することができました

graph = factory.getTx();
String string = String.format("select * from V where name like \"%s\"", criteria);
OSQLSynchQuery<ODocument> query = new OSQLSynchQuery<OrientVertex>(string);
List<OrientDocument> results = graph.getRawGraph().command(query).execute();

ただし、これは頂点では機能しません。データベース内の頂点のリストを返すクエリを実行するにはどうすればよいですか?

前もって感謝します。

4

3 に答える 3

5

orientGraph を使用して rawGraph と実行されたコマンドを直接取得することを回避し、OrientVertex の iterable を返すことができます。

このような :

graph = factory.getTx();
String query = String.format("select * from V where name like \"%s\"", criteria);
OSQLSynchQuery<OrientVertex> qr = new OSQLSynchQuery<OrientVertex>(query);
Iterable<OrientVertex> vertices = graph.command(qr).execute();
于 2014-12-02T22:24:54.450 に答える
3

コードを見ると、Graph API を使用しています。呼び出した後は、Graph API を使用するのでgetRawGraph()なく、Document API を使用します (メソッド名が少しわかりにくいです)。

への参照を持つことOrientGraphには、いくつかの可能性があります

  • メソッドの使用方法orientGraph#getVertex*(..)/orientGraph#getVertices*(..)スタイル
  • Query オブジェクトの使用:orientGraph#query().has("key", value).vertices()
  • gremlinクエリ言語の使用
  • を使用してorientGraph#command(...).execute()います。この場合、コマンドはトランザクションの外部で実行されます (thanks @wolf4ood)
于 2014-12-02T19:40:18.513 に答える