OrientDB Graph API: SQL 查询的处理结果

OrientDB Graph API: process results of SQL query

我正在探索与 OrientDB 图交互的方法。我正在编写 java 代码,所以我正在使用某种 java API。由于 tinkerpop 被描述为图形数据库中的 "JDBC",我天真地假设执行查询然后处理结果集是等效的。

从图表中,我可以这样调用:

graph.command(new OCommandSQL("SELECT FROM class")).execute();

然后呢? "execute" 方法 returns 一个对象,不是很有帮助。通过打印结果对象的 class 名称,它似乎是一个 "OrientDynaElementIterable",不管它是什么。

所以我不确定我是否理解如何 运行 查询然后遍历结果。总的来说,我实际上不理解 tinkerpop,因为我正在处理大量特定于 OrientDB 的 classes,奇怪的是它们是 tinkerpop 规范的一部分,那么这如何使我的代码可以跨图形数据库移植?

从图形命令中检索 VertexIterable

for (Vertex v : (Iterable<Vertex>) graph.command
                       (new OCommandSQL("SELECT FROM class").execute()) {
     // Do something with vertex v
}

可以检索文档here您可以在其中找到以下示例

for (Vertex v : (Iterable<Vertex>) graph.command(
            new OCommandSQL("SELECT EXPAND( out('bought') ) FROM Customer WHERE name = 'Jay'")).execute()) {
    System.out.println("- Bought: " + v);
}