Код: Выделить всё
implementation "org.neo4j:neo4j:5.20.0"В настоящее время у меня есть метод создания узлов, использующий одну большую транзакцию:
Код: Выделить всё
private void saveNodes(List
people) {
try (Transaction tx = graphDb.beginTx()) {
for (Person person : people) {
Node node = tx.createNode(NodeLabel.Person);
node.setProperty("id", person.getId().toString());
// 10+ properties
}
tx.commit();
}
}
Код: Выделить всё
Caused by: org.neo4j.memory.MemoryLimitExceededException: The allocation of an extra 2.0 MiB would use more than the limit 11.1 GiB. Currently using 11.1 GiB. dbms.memory.transaction.total.max threshold reached
Моя цель — разбить этот процесс на более мелкие транзакции, чтобы избежать подобных проблем. . Я знаю, что в Cypher есть оператор CALL { ... } IN TRANSACTIONS, который позволяет обрабатывать данные пакетно.
Можно ли реализовать подобную логику в Java-коде? Если да, то как я могу это сделать?
Подробнее здесь: https://stackoverflow.com/questions/792 ... ns-using-c
Мобильная версия