2016-12-28 5 views
0

開始頂点と終了頂点を持つエッジを特定しようとしています。OrientDBはdirection.OUTでエッジを取得できません

vertexStart.getEdges(Direction.OUT, relationshipId) 

常に空のようだ:私は呼んでいる。この目的のため

到着エッジの取得は機能しているようですが、両方が必要です。

vertexStart.getEdges(Direction.IN, relationshipId) 

relationshipIdはエッジのラベルです。

Iterable<Vertex> startNodes = this.getVertexList(storage.getStartNode(), graph); 
      Iterable<Vertex> endNodes = this.getVertexList(storage.getEndNode(), graph); 

      for (Vertex startNode : startNodes) 
      { 
       for (Vertex endNode : endNodes) 
       { 
        String edgeClass = "class:" + storage.getId(); 
        Edge edge = startNode.addEdge(edgeClass, endNode); 

        for (Map.Entry<String, Object> entry : storage.getProperties().entrySet()) 
        { 
         edge.setProperty(entry.getKey(), entry.getValue()); 
        } 
        edge.setProperty(Constants.TAG_HASH, HashCreator.sha1FromRelationship(storage)); 
        edge.setProperty(Constants.TAG_SNAPSHOT_ID, snapshotId); 
       } 
      } 
      graph.commit(); 

構造の作成に使用します。

+0

使用しているorientdbのバージョンは何ですか? –

+0

コンパイルグループ: 'com.orientechnologies'、名前: 'orientdb-graphdb'、バージョン: '2.2.11' – user2524707

+0

@AlessandroRotaご存知ですか? – user2524707

答えて

0

私はあなたの問題を再現しようとしましたが、私の場合にはうまくいきました。 I頂点位に

enter image description here

10このグラフを作成した:0は、入力と出力の一方の縁部に一方の縁部を有していました。

私はこのコードを使用しました。

Vertex v = g.getVertex("#10:0"); 

System.out.println("OUT"); 
Iterable<Edge> itOut=v.getEdges(Direction.OUT, "E"); 
for(Edge e:itOut){ 
    System.out.println(e.getId()); 
} 

System.out.println("IN"); 
Iterable<Edge> itIn=v.getEdges(Direction.IN, "E"); 
for(Edge e:itIn){ 
    System.out.println(e.getId()); 
} 

と私は

enter image description here

を得たが、それがお役に立てば幸いです。

+0

エッジを保存する方法に何か問題がありますか? メインポストをコードで更新します。 – user2524707

関連する問題