作業中のJavaアプリケーション内の頂点-エッジ-頂点関係として、OrientDB内にトリプレットを格納しようとしています。OrientDBの使用についての私の理解は、Tinkerpop APIを使用して、次のようなグラフをインスタンス化できることです。
OrientGraph graph = new OrientGraph("local:/tmp/orient/test_db");
グラフをインスタンス化するために行うのはこれだけです。次に、次のようなループで頂点とエッジを接続しようとします(aStatement
はsubject-relationship-objectで構成されるトリプレットであることに注意してください)。
for (Statement s : statements) {
Vertex a = graph.addVertex(null);
Vertex b = graph.addVertex(null);
a.setProperty("Subject", s.getSubject().toBELShortForm());
RelationshipType r = s.getRelationshipType();
if (s.getObject() != null) {
b.setProperty("Object", s.getObject().toBELShortForm());
Edge e = graph.addEdge(null, a, b, r.toString());
}
else {
b.setProperty("Object", "null");
Edge e = graph.addEdge(null, a, b, "no-relationship");
}
}
次に、グラフの頂点をループして、次のように出力します。
for (Vertex v : graph.getVertices()) {
out.println("Vertex: " +v.toString());
}
多くの頂点を出力しますが、コマンドラインからサーバーにログインすると、を使用してserver.sh
、の3つのレコードORole
との4つのレコードだけが表示されOUser
ます。ここで何が欠けていますか?私のJavaプログラムは実行されて完了したように見えますが、データはデータベースに入れられていません。