因此,我确实从数据库中检索了相同的对象。两次都使用 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