最近我一直在學習數據庫事務和一個文章引述如下當具有@Version註解的字段或屬性的實體時,如何自動啓用樂觀鎖?
JPA通過@Version annotation.When提供自動支持行版本的你有實體@Version annotatted字段或屬性,樂觀鎖會自動啓用。
我的理解是,數據庫隔離級別的策略是使用不同的鎖狀
- 讀未提交維護:獨家寫鎖
- 讀致力於實現:使用共享讀鎖和排他寫鎖來實現。
等。所以,事務隔離是通過不同的鎖定實現的,我使用悲觀鎖定來實現。
我的問題是當一個字段被聲明爲@Version annotatted它是否覆蓋默認的隔離級別和樂觀鎖定發生?
tharindu_DG在我的情況我正在使用mysql數據庫,默認隔離級別是可重複讀取。所以,隨着隔離級別可重複讀取,我可以使用基於我的要求的樂觀鎖定或悲觀鎖定,對嗎? –
'可重複讀取'是一個更高的讀取提交隔離級別,因爲它不僅阻止了寫入,而且還阻止了讀取,以避免'不可重複讀取'問題。無論如何,我想它與樂觀鎖定是兼容的。 – malaguna