Hibernate 禁用非关键Grails/GORM域类的锁定

Hibernate 禁用非关键Grails/GORM域类的锁定,hibernate,grails,gorm,Hibernate,Grails,Gorm,假设Grails控制器中有以下代码: def action = { ClassName o = ClassName.findByFoo(params.foo) if (o) { o.counter += 1 } } 默认情况下,Grails通过默认添加到所有GORM数据库表的version列使用乐观锁定。但是,如果向该操作发送足够多的并发请求,乐观锁定机制将崩溃,出现以下异常: org.hibernate.StaleObjectStateException: Row w

假设Grails控制器中有以下代码:

def action = {
  ClassName o = ClassName.findByFoo(params.foo)
  if (o) {
    o.counter += 1
  }
}
默认情况下,Grails通过默认添加到所有GORM数据库表的
version
列使用乐观锁定。但是,如果向该操作发送足够多的并发请求,乐观锁定机制将崩溃,出现以下异常:

org.hibernate.StaleObjectStateException:
  Row was updated or deleted by another transaction (or unsaved-value mapping was 
  incorrect): [ClassName#id]
对于更新/删除失败完全不重要的域对象,我想禁用锁定机制,这样就不会抛出StaleObjectStateException。如何实现这一点?

发件人:您可以通过以下方式禁用它:

class Person {
  ..
  static mapping = {
      table 'people'
      version false
  }
}
我怀疑您是否可以为特定呼叫禁用它。

发件人:您可以这样禁用它:

class Person {
  ..
  static mapping = {
      table 'people'
      version false
  }
}
我怀疑你能为一个特定的电话禁用它