spring事務傳播機制

2021-09-29 20:05:48 字數 855 閱讀 8491

spring事務傳播機制:

propagation_required(spring預設) 

如果已經存在事務,那麼加入當前事務,如果不存在事務,則新建事務。

總是建立乙個新的事務。

新建立事務a,而以前的事務b還在執行。此時有兩個事務,事務a先執行,事務b則被掛起。只有事務a執行完畢後,事務b將繼續執行。

ropagation_nested

如果已經存在事務那麼執行在乙個巢狀的事務中.,如果不存在事務, 則按propagation_required 來處理子事務回滾,父事務根據儲存點選擇性回滾或者不回滾

父事務回滾,子事務回滾

propagation_supports

如果已經存在事務,那麼使用當前事務。如果沒有事務,則非事務的執行。

propagation_mandatory

必須在乙個事務中執行,如果沒有事務,將丟擲異常。

propagation_not_supported

總是非事務地執行,並掛起任何存在的事務。

propagation_never

總是非事務地執行,如果在事務中執行,則丟擲異常。

一些有趣的部落格:

(不同service互相呼叫時候,事務是怎麼發生的)

乙個service裡面使用this來呼叫的時候,事務不執行的解決方案:

Spring事務傳播機制

在 spring的 transactiondefinition介面中一共定義了7種事務傳播屬性 propagation required 支援當前事務,如果當前沒有事務,就新建乙個事務。這是最常見的選擇,也是spring事務傳播機制的預設值。propagation supports 支援當前事務,如...

spring事務傳播機制

1.required 必須有乙個事務的支援。如果沒有事務,則新建立乙個,如果有父事務,則使用 fetch 父級事務 2.requires new 必定會建立乙個事務。如果有父事務,則掛起 suspend 父事務,等子事務執行完畢,在恢復 resume 父事務 3.supports 可以有或者沒有事務...

spring事務傳播機制

spring事務傳播機制 1 propagation required 支援當前事務,如果當前不存在事務,則新建乙個事務 2 propagation requires new 不論當前有沒有事務,直接新建乙個事務 3 propagation support 支援當前事務,如果當前存在事務,則加入該事...