#java #neo4j
#java #neo4j
Вопрос:
Я просто хочу убедиться, что я не загружаю в память все узлы БД, только те, которые вызываются с помощью 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:
Да, это правильно.
Загружаются только те узлы, которые извлекаются nodes.next() .
Во время итерации он извлекает данные по мере необходимости для полного заполнения итератора.