gpt4 book ai didi

hibernate - 悲观锁定 : Lock database entity grails

转载 作者:行者123 更新时间:2023-12-02 05:17:57 27 4
gpt4 key购买 nike

我遵循了 grails 文档,它说要进行悲观锁定,我可以这样做:

def plan = Plan.findWhere(user:user, [lock: true])

所以这会锁定计划实例,直到完成对它的保存。现在在我的例子中,我想一次锁定多个计划,如下所示:

def plan = Plan.findAllWhere(user:user, [lock: true])

我在默认情况下是事务性的 grails 服务中执行此操作,但上面的行没有按预期工作。如果并发事务,它不会锁定所有行并抛出 stale state exception执行。

如何在读取时锁定多行?

有关更多信息,请参阅相关问题:concurrent transaction in grails resulting in database stale state exception

最佳答案

你可以做这样的事情,这对我有用:

Process.withNewTransaction {
def process = Process.get(job.process.id)
process.lock()
process.sessionId = 0
process.processId = 0
process.save(flush:true)
}

关于hibernate - 悲观锁定 : Lock database entity grails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20147471/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com