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がスローされないようにします。どうすればそれを達成できますか?