如何使用其记录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检索相同的对象。
答案 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”示例一样,人们通常可以使用它。