1. 程式人生 > >spring 七種事務傳播行為和五種事務隔離級別

spring 七種事務傳播行為和五種事務隔離級別

事務傳播行為:propagation_控制事務傳播行為

1.REQUIRED(預設值):如果當前有事務,就在事務中執行;如果沒有事務,就新建一個事務

2.SUPPORTS:如果當前有事務,就在事務中執行;如果沒有事務,就在非事務狀態下執行

3.MANDATORY:必須在事務內部執行,如果當前有事務,就在事務中執行;如果沒有事務,就報錯

4.REQUIRES_NEW:必須在事務內部執行,如果當前有事務,把當前事務掛起;如果沒有事務,就新建一個事務

5.NOT_SUPPORTED:必須在非事務狀態下執行,如果當前沒有事務,正常執行;如果當前有事務,就把當前事務掛起

6.NEVER:必須在非事務狀態下執行,如果當前沒有事務,正常執行;如果當前有事務,就報錯

7.NESTED:必須在事務狀態下執行,如果沒有事務,新建事務;如果當前有事務,建立一個巢狀事務

事務隔離級別:isolation=”” 事務隔離級別

1.DEFAULT:預設值,由底層資料庫自動判斷應該使用什麼隔離級別

2.READ_UNCOMMITED:可以讀取未提交資料,可能出現髒讀,不重複讀,幻讀.

3.READ_COMMITED:只能讀取其他事務已提交資料.可以防止髒讀,可能出現不可重複讀和幻讀.

4.REPEATABLE_READ:讀取的資料被新增鎖,可以防止髒讀,不可重複讀,但可能出現幻讀

5.SERIALIZABLE:最高隔離級別,排隊操作,對整個事務加鎖,一個事務在操作資料時,另一個事務要等這個事務操作完才能操作資料,是最安全的,但是效率最低