Spring Data Neo4j APO C не выполняется, но ошибок нет - PullRequest
0 голосов
/ 22 апреля 2020

Я пытаюсь использовать некоторые процедуры Neo4j APO C, в основном apoc.periodic.commit и apoc.periodic.iterate, используя аннотацию @Query в репозитории Spring Data Neo4j. Следующий запрос должен служить примером:

@Query("CALL apoc.periodic.commit(\"MATCH (n:SomeNodeLabel)-[*]->(x) WHERE ID(n) = {id} DETACH DELETE x RETURN COUNT(x) LIMIT {limit}\", {limit:10000});")
public void deleteXyz(@Param("id") Long id);

Проблема в том, что выполнение не имеет никакого эффекта (ничего не удаляется) при выполнении программно (например, в модульном тесте), но также нет ошибок , При выполнении в веб-интерфейсе все работает нормально.

Все запросы включены / внесены в белый список в файле конфигурации Neo4j.

1 Ответ

0 голосов
/ 24 апреля 2020

В случае, если кто-то столкнется с той же проблемой в будущем, я понял:

Это как-то связано с тем, как параметры передаются в процедуру / запрос: вместо приведенной выше версии используйте следующий:

@Query("CALL apoc.periodic.commit(\"MATCH (n:SomeNodeLabel)-[*]->(x) WHERE ID(n) = {id} DETACH DELETE x RETURN COUNT(x) LIMIT {limit}\", {limit:10000, id: {id}});")
public void deleteXyz(@Param("id") Long id);
...