1

因此,我确实从数据库中检索了相同的对象。两次都使用 DB 级锁定。全部在单个会话/事务中。

funk()
funk()

def funk() {
    def account = Account.withCriteria {
        id 123
        lock true
        lockMode LockMode.UPGRADE_NOWAIT
    }
    account.save()
}

问题:第二次检索永远挂起读取 HTTP 套接字。

是否可以在不重新设计代码的情况下解决问题?

  • 也许通过手动解锁
  • 或通过重入锁定
  • 或者如果我知道它已经被锁定,我可以跳过锁定......

Grails 2.2.0、一些 Hibernate、Oracle XE

4

0 回答 0