2017-05-11 69 views

回答

3

它意味着像持久層一樣支持樂觀鎖定,就像Hibernate用@Version註釋一樣。

基本上,當您從數據庫中選擇一行並返回當前版本。當行被更新時,版本列增加。更新行時,您在查詢中使用WHERE子句以匹配您選擇的版本。如果更新沒有修改任何行,那麼您就知道其他內容在此期間更新了行(和版本)。

hjmp.throw.concurrent.modification.exceptions(默認爲false)是config參數,它可以啓用或禁用在更新時檢查項目行必須具有與讀取HJMP實體對象時讀取的版本相同的版本。

這意味着在性能hjmp.throw.concurrent.modification.exceptions參數設置爲true激活樂觀鎖定,當然看到越來越樂觀併發例外,如HJMPException的風險(PK被同時修改 - 預期的版本...),這將迫使一個事務回滾


PS:如果你沒有啓用樂觀鎖定,只有髒屬性將被寫入,最終結果將是一個合併。