我正在嘗試在OrientDB中存儲三元組作爲我正在使用的Java應用程序內部的Vertex-Edge-Vertex關係。我使用OrientDB的理解是,我可以使用TinkerPop有關API和實例化一個像這樣的圖表:OrientDB - 從Java應用程序中存儲數據的問題
OrientGraph graph = new OrientGraph("local:/tmp/orient/test_db");
這真的是我做的實例圖,然後我嘗試用邊頂點連接在這樣一個循環此:(注意,一個Statement
是由主題關係對象的三重態。)
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
,我看到的全部是ORole
的3條記錄和OUser
的4條記錄。我在這裏錯過了什麼?因爲它看起來像我的Java程序運行並完成,但數據不會被放入數據庫。
爲什麼這個被降票? – Houdini