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

ike*_*8me 5 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检索相同的对象.

pea*_*eak 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"));
Run Code Online (Sandbox Code Playgroud)

反之亦然,有几种方法。我已经验证以下内容在使用版本 2.1.8 时确实有效:

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

另一种更通用的方法是构造并执行 SELECT 查询SELECT FROM :RID,如下例所示:

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

(3) 在实践中,通常最好在 Java 代码中或在使用任何受支持的编程语言时对 OrientDB 顶点和边使用其他“句柄”。例如,一旦拥有一个 Java 形式的顶点Vertex(如上面的“Vertex v”示例所示),通常就可以使用它。