spring事物的7種傳播行為

2021-10-09 13:59:09 字數 746 閱讀 9181

當乙個帶有事務的方法中呼叫了多個本身帶有事務的方法時,必須指定事務應當如何傳播

如果呼叫該方法時,沒有事務在執行,那麼啟動乙個新事務,並在新事務中執行;

如果呼叫該方法時,已有事務在執行,那麼這個方法i加入到已有事務中執行。

如果呼叫該方法時,沒有事務在執行,那麼啟動乙個新事務,並在新事務中執行;

如果呼叫該方法時,已有事務在執行,將這個事務掛起,再啟動乙個新事務,並在新事務中執行。

如果呼叫該方法時,沒有事務在執行,那麼這個方法就不在事務中執行; 如果呼叫該方法時,已有事務在執行,那麼這個方法i加入到已有事務中執行。

呼叫的這個方法不能在事務中執行,如果呼叫該方法時已有事務,那麼將這個事務掛起。

呼叫的這個方法必須在事務中執行,如果呼叫該方法時沒有事務在執行就會丟擲異常。

呼叫的這個方法不能在事務中執行,如果呼叫該方法時已有事務在執行就會丟擲異常。

如果呼叫該方法時,沒有事務在執行,那麼啟動乙個新事務,並在新事務中執行;

如果呼叫該方法時,已有事務在執行,那麼啟動乙個新事務,再將新事物嵌入到已有事務中執行。

spring事物傳播行為

propagation required 如果當前沒有事務,就新建乙個事務,如果已經存在乙個事務中,加入到這個事務中。這是最常見的選擇。propagation supports 支援當前事務,如果當前沒有事務,就以非事務方式執行。propagation mandatory 使用當前的事務,如果當前沒...

Spring的事物傳播行為

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

Spring事物的傳播行為

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