使用Java API在Neo4J中延迟加载节点的正确方法

时间:2016-10-05 06:08:45

标签: java neo4j

我只是想确保我不在内存中加载db的所有节点,只在迭代器中使用nodes.next()调用。这就是我所拥有的:

    try (Transaction tx = graphDB.beginTx()) {
        Node node = graphDB.getNodeById(1);
        ResourceIterator<Node> nodes = graphDB.traversalDescription().evaluator(Evaluators.all()).traverse(node).nodes().iterator();

        while (nodes.hasNext()) {
            Node node = nodes.next();
            // do stuff with the node...

       }
   }

这是对的吗?

1 个答案:

答案 0 :(得分:1)

是的,这是对的。

仅加载由nodes.next()拉取的节点。

在迭代期间,它会根据需要提取数据以填充迭代器。