我正在使用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
答案 0 :(得分:3)
执行结果本质上是地图的迭代器,其类型定义类似于:
Iterable<Map<String,Object>>
所以你可以轻松地做到:
result.iterator().hasNext();
我认为它严格来说是一个ResourceIterator,所以如果你得到一个迭代器,如果你不用它就应该关闭它。检查ResourceIterator的neo4j文档。