如何在Java API中使用fetchplan?

时间:2015-04-01 08:32:50

标签: java orientdb

如上所述here,如果我将[*]in_*:-2 out_*:-2定义为fetchplan,则查询应仅返回属性,而不返回有关边的信息。

    OrientGraph graph = new OrientGraph(URL, USER, USER);
    try {
        Iterable resultList = graph.command(new OSQLSynchQuery("select from #11:0")).setFetchPlan("[*]in_*:-2 out_*:-2").execute();
        OrientVertex user = (OrientVertex) resultList.iterator().next();
        for (String s : user.getRecord().fieldNames()) {
            System.out.println(s);
        }

        Iterable resultList2 = graph.command(new OSQLSynchQuery("select from #11:0")).execute();
        OrientVertex user2 = (OrientVertex) resultList2.iterator().next();
        for (String s : user2.getRecord().fieldNames()) {
            System.out.println(s);
        }
    } finally {
        graph.shutdown();
    }

我有相同的输出(包括有关边的信息),有和没有fetchplan。我做错了什么?

1 个答案:

答案 0 :(得分:0)

使用网络协议,获取计划是优化网络传输,而不是排除连接。在上面的情况下,如果被提取计划排除,OrientDB客户端将获取连接的边缘。