Micronaut和Neo4j的ResultConsumedException:无法再访问此结果的记录,因为该结果已被使用

Micronaut和Neo4j的ResultConsumedException:无法再访问此结果的记录,因为该结果已被使用,neo4j,micronaut,Neo4j,Micronaut,我正在尝试使用Micronaut 1.3.5和Neo4J 4.0.0开发一个简单的应用程序。我正在使用io.micronaut.configuration:micronaut-neo4j-bolt:2.0.0驱动程序。我有这样的代码: public Stream<Map<String, Object>> findAll() { try (Session s = driver.session()) { String stmt = "MATCH (n:Pr

我正在尝试使用Micronaut 1.3.5和Neo4J 4.0.0开发一个简单的应用程序。我正在使用io.micronaut.configuration:micronaut-neo4j-bolt:2.0.0驱动程序。我有这样的代码:

public Stream<Map<String, Object>> findAll() {
   try (Session s = driver.session()) {
       String stmt = "MATCH (n:Product) RETURN n";
       return s.readTransaction(tx -> tx.run(stmt)).list(r -> r.asMap()).stream();
   }
}

我在谷歌上搜索了一下,发现了一些可以说明这是正常行为的东西,但没有讨论实际的解决方案。我假设它与驱动程序/会话的异步性质有关。

工作方式是

Stream<Map<String, Object>> stream = s.readTransaction(tx -> {
    Result result = tx.run(stmt);
    return result.list(r -> r.asMap()).stream();
 });
结果需要在readTransaction中处理

这里有很多你可能会觉得有用的例子

Stream<Map<String, Object>> stream = s.readTransaction(tx -> {
    Result result = tx.run(stmt);
    return result.list(r -> r.asMap()).stream();
 });