【问题标题】:neo4j QueryResult won't exitneo4j QueryResult 不会退出
【发布时间】:2013-04-22 13:20:28
【问题描述】:

目前我有这门课。当我删除 QueryResult 它运行主要方法并自行完成。当我添加 QueryResult 时,我需要手动终止运行。我怎样才能使它优雅地结束?谢谢。

public class TestConnect {
  public static void main(String[] args) {
    System.out.println("starting test");
     final RestAPI api = new RestAPIFacade("http://localhost:7474/db/data");
    System.out.println("API created");
    final RestCypherQueryEngine engine = new RestCypherQueryEngine(api);
    System.out.println("engine created");
    QueryResult<Map<String,Object>> result = engine.query("start n=node({id}) return n;", map("id",0));
  }
}

编辑: 我正在使用 Java 7。

【问题讨论】:

    标签: java api neo4j


    【解决方案1】:

    我没有使用 neo4j 的经验,但是 QueryResults 通常需要关闭,以便 java 释放/清理连接和类似的东西。

    顺便说一句,我不知道您使用的是哪个版本的 java,但如果它是 java 7 或更高版本并且此结果实现了 java.lang.AutoClosable(它可能会这样做),您可以使用自动资源管理!耶!

    所以要么手动调用:result.close(最好在 finally 块中)或使用 ARM:

    try (QueryResult> result = engine.query("start n=node({id}) return n;", map("id",0))) {
        // 在这里做事
    }
    

    应该可以。

    【讨论】:

    • 所以这会起作用,但这需要对象实现 java.lang.autocloseable
    • 确实,它是 java.io.Closable 的父级,所以所有这些都可以工作。
    猜你喜欢
    • 1970-01-01
    • 2017-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多