在 neo4j 中,apoc.lock.nodes() 会持续整个事务吗?



我在 neo4j 中属于链表的节点中执行一些操作,这需要几个单独的查询。链表有一个头节点,我使用它来锁定列表,同时使用 js 驱动程序的 transaction.run(( 函数运行这些语句。

我的问题是:当我在第一条语句中运行 apoc.lock.nodes(( 时,我得到的锁是持续整个事务还是只针对第一条语句?

由于apoc.lock.*()方法除了获取公共锁之外没有什么特殊之处,因此它们都在事务结束时释放:

https://github.com/neo4j-contrib/neo4j-apoc-procedures/blob/3.5/src/main/java/apoc/lock/Lock.java

行为与文档中描述的行为没有什么不同:

https://neo4j.com/docs/java-reference/3.5/transactions/#transactions-locking

最新更新