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 支援當前事務,如果當前存在事務,則加入該事...