spring事物傳播行為

2021-09-01 13:07:56 字數 486 閱讀 5929

propagation_required

如果當前沒有事務,就新建乙個事務,如果已經存在乙個事務中,加入到這個事務中。這是最常見的選擇。

propagation_supports

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

propagation_mandatory

使用當前的事務,如果當前沒有事務,就丟擲異常。

propagation_requires_new

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

propagation_not_supported

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

propagation_never

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

propagation_nested

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

Spring的事物傳播行為

以下討論基於a.methoda 呼叫b.methodb 若b的事務隔離級別為 propagation required 外面影響裡面,裡面不影響外面 若a的方法沒有事務,則建立乙個新事務,若有事務,則加入當前事務。如果a的方法a丟擲異常,則a,b的方法都會回滾,如果b的方法b丟擲異常,則看a有沒有捕...

Spring事物的傳播行為

在service類前加上 transactional,宣告這個service所有方法需要事務管理。每乙個業務方法開始時都會開啟乙個事務。spring預設情況下會對執行期例外 runtimeexception 進行事務回滾。這個例外是unchecked 如果遇到checked意外就不回滾。如何改變預設...

spring事物傳播行為說明

spring在transactiondefinition介面中規定了7種型別的事務傳播行為,規定了事務方法和事務方法發生巢狀呼叫時事務如何進行傳播。種類說明 propagation required 如果當前沒有事務,就新建乙個事務,如果已經存在乙個事務中,加入到這個事務中。這是最常見的選擇。pro...