Database OrientDB-存储java应用程序中的数据时出现问题

Database OrientDB-存储java应用程序中的数据时出现问题,database,nosql,orientdb,Database,Nosql,Orientdb,我试图在OrientDB中存储三元组,作为我正在处理的Java应用程序中的顶点-边-顶点关系。我对使用OrientDB的理解是,我可以使用Tinkerpop API并实例化如下图形: OrientGraph graph = new OrientGraph("local:/tmp/orient/test_db"); for (Vertex v : graph.getVertices()) { out.println("Vertex: " +v.toString()); } 这就是我实

我试图在OrientDB中存储三元组,作为我正在处理的Java应用程序中的顶点-边-顶点关系。我对使用OrientDB的理解是,我可以使用Tinkerpop API并实例化如下图形:

OrientGraph graph = new OrientGraph("local:/tmp/orient/test_db");
for (Vertex v : graph.getVertices()) {
     out.println("Vertex: " +v.toString());
}
这就是我实例化图形所做的全部工作,然后我尝试将顶点与循环中的边连接起来,如下所示:(注意,
语句是由subject-relationship-object组成的三元组。)

然后,我循环遍历图的顶点,并将它们打印出来,如下所示:

OrientGraph graph = new OrientGraph("local:/tmp/orient/test_db");
for (Vertex v : graph.getVertices()) {
     out.println("Vertex: " +v.toString());
}

它确实打印了很多顶点,但是当我使用
server.sh
通过命令行登录服务器时,我看到的只有
ORole
的3条记录和
OUser
的4条记录。我错过了什么?因为看起来虽然我的java程序运行并完成了,但数据并没有被放入数据库

至少就目前而言,答案似乎不是使用Tinkerpop API,而是直接使用Orient API。这与我在Tinkerpop中所做的相同,但使用的是OrientDB API。这实际上会将我的数据存储到数据库中:

for (Statement s : statements) {
            ODocument sNode = db.createVertex();
            sNode.field("Subject", s.getSubject().toBELShortForm());
            sNode.save();

            ODocument oNode = db.createVertex();
            if (s.getObject() != null) {
                oNode.field("Object", s.getObject().toBELShortForm());
                oNode.save();
            }
            else {
                oNode.field("Object", "null");
                oNode.save();
            }

            RelationshipType r = s.getRelationshipType();
            ODocument edge = db.createEdge(sNode, oNode);
            if (r != null) {
                edge.field(r.toString());
                edge.save();
            }
            else {
                edge.field("no relationship");
                edge.save();
            }
}

至少就目前而言,答案似乎不是使用Tinkerpop API,而是直接使用Orient API。这与我在Tinkerpop中所做的相同,但使用的是OrientDB API。这实际上会将我的数据存储到数据库中:

for (Statement s : statements) {
            ODocument sNode = db.createVertex();
            sNode.field("Subject", s.getSubject().toBELShortForm());
            sNode.save();

            ODocument oNode = db.createVertex();
            if (s.getObject() != null) {
                oNode.field("Object", s.getObject().toBELShortForm());
                oNode.save();
            }
            else {
                oNode.field("Object", "null");
                oNode.save();
            }

            RelationshipType r = s.getRelationshipType();
            ODocument edge = db.createEdge(sNode, oNode);
            if (r != null) {
                edge.field(r.toString());
                edge.save();
            }
            else {
                edge.field("no relationship");
                edge.save();
            }
}

在服务器的databases目录下创建图形。下面的示例假设OrientDB已安装在“/usr/local/orient”下:

当您启动server.sh时,您会发现该数据库已正确填充


Lvc@

在服务器的数据库目录下创建图形。下面的示例假设OrientDB已安装在“/usr/local/orient”下:

当您启动server.sh时,您会发现该数据库已正确填充


Lvc@

为什么会被否决?为什么会被否决?