春天数据Neo4j APOC不执行但不出错

我正在尝试使用一些Neo4j的APOC程序,主要包括 apoc.periodic.commitapoc.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);

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

在Neo4j的配置文件中,所有的查询都是启用白名单的。

解决方案:

为了防止将来有人面临同样的问题,我想出了办法,它与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, id: {id}});")
public void deleteXyz(@Param("id") Long id);

给TA打赏
共{{data.count}}人
人已打赏
未分类

python有什么方法可以将一个参数的默认值设置为函数中的另一个参数?

2022-9-8 23:28:36

未分类

Executor服务 - InvokeAll:如何映射响应?

2022-9-8 23:28:38

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索