事務傳播:乙個被事務修飾的方法,被另外乙個方法呼叫的時候,事務是如何傳播的。
public
voidb(
)public
voida(
)
當b方法呼叫a方法時,a方法被以下事務所修飾時
1.propagation.required:
當a方法沒有被事務修飾時,b會建立新事務
1.a異常,b正常
2.b異常,a正常
當a方法被事務所修飾,b加入該事務
就是兩個方法有乙個異常,全部回滾
2.propagation.requires_new
當a方法沒有被事務修飾時,b會建立新事務
同上當a方法被事務所修飾,b仍然建立新事務
1.a方法異常,b正常執行
2.b方法異常,a回滾
3.propagation.nested
當a方法沒有被事務修飾時,b會建立新事務
同上當a方法被事務所修飾
1.a異常,b回滾
2.b異常,a正常
有事務修飾時,與requires_new正好相反。
4.support
Spring事務傳播機制
在 spring的 transactiondefinition介面中一共定義了7種事務傳播屬性 propagation required 支援當前事務,如果當前沒有事務,就新建乙個事務。這是最常見的選擇,也是spring事務傳播機制的預設值。propagation supports 支援當前事務,如...
spring事務傳播機制
1.required 必須有乙個事務的支援。如果沒有事務,則新建立乙個,如果有父事務,則使用 fetch 父級事務 2.requires new 必定會建立乙個事務。如果有父事務,則掛起 suspend 父事務,等子事務執行完畢,在恢復 resume 父事務 3.supports 可以有或者沒有事務...
spring事務傳播機制
spring事務傳播機制 propagation required spring預設 如果已經存在事務,那麼加入當前事務,如果不存在事務,則新建事務。總是建立乙個新的事務。新建立事務a,而以前的事務b還在執行。此時有兩個事務,事務a先執行,事務b則被掛起。只有事務a執行完畢後,事務b將繼續執行。ro...