spring 七種事務傳播行為和五種事務隔離級別
阿新 • • 發佈:2018-12-16
事務傳播行為: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:最高隔離級別,排隊操作,對整個事務加鎖,一個事務在操作資料時,另一個事務要等這個事務操作完才能操作資料,是最安全的,但是效率最低