spring事務傳播機制

2021-08-04 05:24:34 字數 1025 閱讀 6214

1. required

-必須有乙個事務的支援。如果沒有事務,則新建立乙個,如果有父事務,則使用(fetch)父級事務

2. requires_new

-必定會建立乙個事務。如果有父事務,則掛起(suspend)父事務,等子事務執行完畢,在恢復(resume)父事務

3. supports

-可以有或者沒有事務的支援。如果有父事務,則使用fetch父事務,沒有父事務,也不會新建

4. not_supported

-不支援事務。如果有父事務,則掛起(suspend)父事務,等該方法執行完畢,在恢復(resume)父事務

5. mandatory

-必須有乙個事務的支援。類似required,不同之處就是它不會自己生成事務,而required會自己生成

6. never

-不支援事務。與not_suppored類似,不同之處就是在有事務的情況下not_suppored會掛起正在執行的事務,而never會丟擲異常

7. nested

-與requires_new類似。但是父事務出現異常的時候,子事務也會回滾。

異常處理:

說明:有兩個業務類的方法add()、delete(),add()呼叫delete(),且這兩個方法都不做異常捕捉處理;

-add()和delete()都有事務時,且delete()是fetch的是add()的事務(同乙個事務),那異常不管是出現在add()還是delete()方法,事務都會回滾。

-add()和delete()都有事務時,且delete()的事務與add()的事務不是用乙個事務,那異常出現在delete()裡面,全部回滾,如果異常出現在add()裡面,則和delete()沒有關係。

Spring事務傳播機制

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

spring事務傳播機制

spring事務傳播機制 propagation required spring預設 如果已經存在事務,那麼加入當前事務,如果不存在事務,則新建事務。總是建立乙個新的事務。新建立事務a,而以前的事務b還在執行。此時有兩個事務,事務a先執行,事務b則被掛起。只有事務a執行完畢後,事務b將繼續執行。ro...

spring事務傳播機制

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