在neo4j中,我正在对属于链表的节点执行一些操作,这需要几个单独的查询。链表有一个头节点,当我使用js驱动程序的transaction.run()函数运行这些语句时,我使用它来锁定列表。
我的问题是:当我在第一个语句中运行apoc.lock.nodes()时获得的锁是持续整个事务,还是只针对第一个语句?
发布于 2020-02-04 22:18:28
由于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
https://stackoverflow.com/questions/59331765
复制相似问题