1
假設在一個Grails控制器以下代碼:禁用鎖定用於非關鍵的Grails/GORM域類
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異常。我如何實現這一目標?