事務傳播機制

2022-05-03 01:27:11 字數 821 閱讀 4575

propagation.required:支援當前事務,如果當前沒有事務,就新建乙個事務。這是最常見的選擇,也是spring預設的事務的傳播。

propagation.supports:支援當前事務,如果當前沒有事務,就以非事務方式執行。

propagation.mandatory:支援當前事務,如果當前沒有事務,就丟擲異常。

propagation.

requires_new:

新建事務,如果當前存在事務,把當前事務掛起。

propagation.

not_supported:

以非事務方式執行操作,如果當前存在事務,就把當前事務掛起。

propagation.

never:

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

propagation.

nested

:如果當前存在事務,則在巢狀事務內執行。如果當前沒有事務,則執行與propagation_required類似的操作。

propagation.requires_new

新建事務,如果當前存在事務,把當前事務掛起。新建的事務將和被掛起的事務沒有任何關係,是兩個獨立的事務,外層事務失敗回滾之後,不能回滾內層事務執行的結果,內層事務失敗丟擲異常,外層事務捕獲,也可以不處理回滾操作。

propagation.nested

表示如果當前存在事務,則該方法應該執行在乙個巢狀事務中,被巢狀的事務可以獨立於被封裝的事務中進行提交或者回滾。如果封裝事務存在,並且外層事務丟擲異常回滾,那麼內層事務必須回滾,反之,內層事務並不影響外層事務。如果封裝事務不存在,則同propagation_required的一樣。

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