2016-10-02 5 views
0

Java APi上で1つまたは複数のクラス/ラベルを使用して、1つの頂点から始まるアウトエッジを取得したいとします。OrientDB上でラベル/クラスを持つエッジを取得する方法java api

これはNPEの原因となるコード例です。 EdgeとOrientEdgeを使ってみました。

private Iterable<OrientEdge> queryNextEdges(OrientVertex vertex) { 
    OrientGraphFactory factory = new OrientGraphFactory(
      "remote:127.0.0.1:2424/xyz", "admin", "admin" 
    ).setupPool(1, 10); 
    OrientGraph graph = factory.getTx(); 
    Iterable<OrientEdge> queryResult; 
    try { 
     queryResult = (Iterable<OrientEdge>) (OrientEdge) vertex.getEdges(Direction.OUT, "hierarchy"); 
    } finally { 
     graph.shutdown(); 
    } 
    return queryResult; 
} 

エラー:

Caused by: java.lang.NullPointerException 
at com.tinkerpop.blueprints.impls.orient.OrientVertex.getFieldNames(OrientVertex.java:1042) 
at com.tinkerpop.blueprints.impls.orient.OrientVertex.getEdges(OrientVertex.java:810) 
at com.tinkerpop.blueprints.impls.orient.OrientVertex.getEdges(OrientVertex.java:782) 
at ebs.window.graphLayout.GraphLayoutPresenter.queryNextEdges(GraphLayoutPresenter.java:214) 
+1

'vertex'の設定にNULLが設定されているようです。どのようにして頂点を得ましたか? – Lvca

+0

「OrientGraphFactory」と「OrientGraph」インスタンスを'em 'を使用せずに作成するのはなぜですか? –

+0

@IvanMainettiはい、あなたは残念ながら私が試した他のものの残されたコードです。 – Wozilla

答えて

2

私はあなたの例を再現しようと、それは動作します。

enter image description here

はそれがお役に立てば幸いです。

+1

ありがとう、私はあなたの方法で頂点を取得しようとしたと働いた。私のコードで間違いを突き止めるのに役立ちました。それは私がエッジを持っている方法ではなかったが、私が最初に使った頂点で – Wozilla

+0

@ Wozilla:これが機能するので、おそらく正しい答えとしてこれを – Erik

+0

と評価する。しかし、これを読んだ他の人にとっては、混乱を避けるためです。この例は私のエラーの解決策ではありませんが、実際の例です。 – Wozilla

関連する問題