我正在尝试在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