JPA 1.0只支援樂觀鎖定Optimistic lock,到JPA 2.0更支援了悲觀鎖定Pessimistic lock,以提供更嚴謹的資料整合性。因為JPA 2.0支援了悲觀鎖定,當需要長時間不能有有其他資料變動的處理時,也可以安心使用JPA。但是悲觀鎖定會造成其他處理該筆資料的動作被等待,而造成效能的低下。
- 鎖定模式的變動
JPA1.0
| 鎖定模式 |
簡介 |
| READ |
樂觀鎖定的讀取 |
| WRITE |
樂觀鎖定的寫入 |
JPA2.0
| 鎖定模式 |
簡介 |
| READ |
樂觀鎖定的讀取 |
| WRITE |
樂觀鎖定的寫入 |
| OPTIMISTIC |
樂觀鎖定的讀取 |
| OPTIMISTIC_FORCE_INCREMENT |
樂觀鎖定的寫入,以及version 標註欄位的自動增1 |
| PESSIMISTIC_READ |
悲觀鎖定的讀取 |
| PESSIMISTIC_WRITE |
悲觀鎖定的寫入 |
| PESSIMISTIC_FORCE_INCREMENT |
悲觀鎖定的寫入,以及version 標註欄位的自動增1 |
| NONE |
使用預設 |