如何在Neo4j中检查ExecutionResult是否为空

时间:2015-06-22 09:49:11

标签: java neo4j

我正在使用java在neo4j中执行查询。我不知道如何检查执行结果是否为空。这是我的代码。

String firstquery=" start n=node(*) match(b)-[relatedto]->(n) where b.value=\""+applicationName+"\" return n";  
    ExecutionResult execResult = execEngine.execute(firstquery);
    System.out.println("executing query");
    String results = execResult.dumpToString();
    System.out.println(results);
    Iterator<Node> n_column1 = execResult.columnAs( "n" );
    System.out.println("n column 1 :"+n_column1);
    if (n_column1 ==null)
    {
        System.out.println("Has no rows");

    }
    else
    {
        System.out.println("results are there");
    }

我的results.dumpToString()看起来像这样。我对if中的条件感到困惑,它会检查它是否有0结果。

+---+
| n |
+---+
+---+
0 row

1 个答案:

答案 0 :(得分:3)

执行结果本质上是地图的迭代器,其类型定义类似于:

Iterable<Map<String,Object>>

所以你可以轻松地做到:

result.iterator().hasNext();

我认为它严格来说是一个ResourceIterator,所以如果你得到一个迭代器,如果你不用它就应该关闭它。检查ResourceIterator的neo4j文档。