如何通过Java中的记录ID查询OrientDB顶点图形对象?

时间:2016-01-02 09:22:29

标签: java orientdb

如何使用其记录ID检索OrientDB文档/对象或图形对象? (语言:Java)

我指的是http://orientdb.com/docs/2.0/orientdb.wiki/Tutorial-Record-ID.html和Vertex.getId()/ Edge.getId()方法。

就像SQL查询“SELECT * from aTable WHERE ID = 1”。

用法/目的描述:我希望在OrientDB创建后存储生成的ID,然后使用相同的ID检索相同的对象。

1 个答案:

答案 0 :(得分:1)

(1)我建议使用OrientDB 2.1及其文档,例如: http://orientdb.com/docs/2.1/Tutorial-Record-ID.html

(2)从你的帖子中,我不清楚你是否需要帮助从查询结果中获取RID,或者检索给定RID的对象,所以让我首先提到前者可以如图所示完成通过此示例(在INSERT查询的情况下):

ODocument result=db.command(new OCommandSQL(<INSERTQUERY>)).execute();

System.out.println(result.field("@rid"));

反过来说,有几种方法。我已经验证以下操作使用版本2.1.8:

OrientGraph graph = new OrientGraph("plocal:PATH_TO_DB", "admin", "admin");
Vertex v = graph.getVertex("#16:0");

另一种更通用的方法是构造和执行SELECT FROM :RID形式的SELECT查询,沿着这个例子的行:

List<ODocument> results = db.query(new OSQLSynchQuery<ODocument>("select from " + rid));
for (ODocument aDoc : results) {
    System.out.println(aDoc.field("name"));
}

(3)实际上,在Java代码中使用OrientDB顶点和边上的其他“句柄”,或者使用任何支持的编程语言时,通常会更好。例如,一旦有一个顶点为Java Vertex,就像上面的“Vertex v”示例一样,人们通常可以使用它。