假设 Grails 控制器中有以下代码:
def action = {
ClassName o = ClassName.findByFoo(params.foo)
if (o) {
o.counter += 1
}
}
默认情况下,Grails 通过默认version
添加到所有 GORM 数据库表的列使用乐观锁定。但是,如果有足够多的多个并发请求发送到此操作,乐观锁定机制将崩溃,并出现以下异常:
org.hibernate.StaleObjectStateException:
Row was updated or deleted by another transaction (or unsaved-value mapping was
incorrect): [ClassName#id]
对于失败的更新/删除完全不重要的域对象,我想禁用锁定机制,这样就不会抛出 StaleObjectStateException。我该如何做到这一点?