【问题标题】:Spring Data Neo4j APOC not executing but no errorsSpring Data Neo4j APOC 未执行但没有错误
【发布时间】:2020-04-22 11:14:45
【问题描述】:

我正在尝试使用一些 Neo4j APOC 程序,主要是 apoc.periodic.commitapoc.periodic.iterate 在 Spring Data Neo4j 存储库中使用 @Query 注释。以下查询应作为示例:

@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);

问题是当以编程方式执行时(例如,在单元测试中),执行没有效果(没有被删除),但也没有错误。在 Web 界面中执行时,一切正常。

所有查询都在 Neo4j 配置文件中启用/列入白名单。

【问题讨论】:

  • 能否提供neo4j的配置文件?我没有参数,仍然无法使其工作。在 neo4j 浏览器中执行相同的查询即可解决。

标签: java spring-boot neo4j spring-data-neo4j neo4j-apoc


【解决方案1】:

万一以后有人遇到同样的问题,我想通了:

这与将参数传递给过程/查询的方式有关:使用以下版本代替上述版本:

@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);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多