spring事務傳播機制

2021-10-09 22:40:51 字數 695 閱讀 2416

spring事務傳播機制

1 propagation_required 支援當前事務,如果當前不存在事務,則新建乙個事務

2 propagation_requires_new 不論當前有沒有事務,直接新建乙個事務

3 propagation_support 支援當前事務,如果當前存在事務,則加入該事務,如果不存在,就以非事務方式執行

4 propagation_mandatory 支援當前事務,如果當前存在事務,則加入該事務,如果不存在,則丟擲異常

5 propagation_not_support 以非事務方式執行,如果當前存在事務,則將當前事務掛起

6 propagation_never 以非事務方式執行,如果當前存在事務,則丟擲異常

7 propagation_nested 如果當前存在事務,則在巢狀事務內執行,如果當前不存在事務,則新建乙個事務

propagation_nested是propagation_required和propagation_requires_new的結合

propagation_required無論事務成功與失敗,父事務和子事務都是一起成功一起失敗

propagation_requires_new,兩個事務之前沒有傳遞性,失敗成功互不影響

propagation_nested要求父事務成功提交,子事務才能成功,子事務的失敗不影響父事務的成功,這就叫做「聯合成功,隔離失敗」

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...