如何使用其记录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)我建议使用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”示例所示),通常就可以使用它。