事務的四種級別以及spring事務的七中傳播方式

事務的四種級別

(1)READ_UNCOMMITTED(讀未提交):,可讀取未提交事務的操作數據,這種情況會出現髒讀、重複讀、幻讀問題;

(2)READ_COMMITTED(讀提交):一個事務等另一個事務提交之後纔可進行讀取,解決了髒讀問題,但會出現重複讀、幻讀問題;

(3)REPEATABLE_READ(重複讀):讀取事務開啓的時候不能對數據進行修改,可能出現幻讀問題;

(4)SERIALIZABLE (序列化):是最高的事務隔離級別,在該級別下,事務串行化順序執行,可以避免髒讀、不可重複讀與幻讀。但是這種事務隔離級別效率低下,比較耗數據庫性能,一般不使用;

spring事務的七中傳播方式

spring事務的七中傳播方式主要是針對於方法中間傳遞時的事務機制,

例如:以方法B爲當前主體 ,方法A調用了方法B ,作爲方法B你看方法A

(1)PROPAGATION_REQUIRED(默認):如果A有事務則B加入A事務,如果A沒有事務則新B建一個事務;

(2)PROPAGATION_NEW:B總是開啓一個新的事務,如果A有事務則將A事務掛起先執行B事務;

(3)PROPAGATION_NESTED:RUGU :如果A沒事務則新建一個事務,如果A有事務則把B的事務當成A的一個子事務(A事務rolback,commit影響B,B事務rolback,commit不影響A);

(4)PROPAGATION_SUPPORTS:如果A沒事務,那就按普通方法執行,如果有A事務則用A的事務(B本身不具備事務);

(5))PROPAGATION_NOT_SUPPORTED:B總是非事務地執行,如果A有事務則把A事務掛起,自己還是以普通方法執行(B本身不具備事務);

(6)PROPAGATION_NEVER:如果A沒事務,那就按普通方法執行,如果A有事務則拋出異常((B本身不具備事務);

(7)PROPAGATION_MANDATORY:如果A沒事務就拋異常,如果A有事務則使用A的事務(B本身不具備事務);

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章