1. 程式人生 > >巢狀事務,預設事務傳播機制測試總結PROPAGATION_REQUIRED

巢狀事務,預設事務傳播機制測試總結PROPAGATION_REQUIRED

這裡應用的是預設事務傳播機制而且是基於註解形式的。

1.新增@Transactional註釋即可進行事務異常回滾,如果需要try{}catch必須try{}catch後丟擲異常否則不會回滾
2.巢狀事務,內部異常,內外都回滾
3.巢狀事務,外部異常,內外都回滾
4.巢狀事務,外部異常try{}catch沒有丟擲異常,內外都不回滾
5.巢狀事務,外部異常try{}catch丟擲異常,內外都回滾
6.巢狀事務,內部異常try{}catch沒有丟擲異常,內外都不回滾
7.巢狀事務,內部異常try{}catch丟擲異常,內外都回滾
 

1、PROPAGATION_REQUIRED:如果當前沒有事務,就建立一個新事務,如果當前存在事務,就加入該事務,該設定是最常用的設定。

2、PROPAGATION_SUPPORTS:支援當前事務,如果當前存在事務,就加入該事務,如果當前不存在事務,就以非事務執行。‘

3、PROPAGATION_MANDATORY:支援當前事務,如果當前存在事務,就加入該事務,如果當前不存在事務,就丟擲異常。

4、PROPAGATION_REQUIRES_NEW:建立新事務,無論當前存不存在事務,都建立新事務。

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

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

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