Spring 事務傳播機制
阿新 • • 發佈:2018-10-31
簡述:
spring的事務傳播(transaction propagation)分為
REQUIRED
SUPPORTED
NOT_SUPPORTED
REQUIRES_NEW
MANDATORY
NEVER
NESTED
PROPAGATION_NESTED
如圖所示
下面簡述一下文件上的說明,
1. REQUIRED
如果當前事務上下文中存在事務,則使用當前事務,否則新建一個事務
2. SUPPORTED
如果當前事務上下文中有一個事務,那麼使用上下文中的事務;如果沒有,那麼按照沒有事務的方式執行
3. NOT_SUPPORTED
無論當前事務上下文中有沒有事務,都會按照無事務的方式執行
4. REQUIRES_NEW
無論當前事務上下文中有沒有事務,都會開啟一個新的事務
事務間沒有依賴關係,四種情況都有可能出現
A成功B失敗,A失敗B成功,A成功B失敗,A失敗B失敗
5. MANDATORY
如果當前事務上下文中有一個事務,那麼使用事務上下文中的事務;如果沒有, 那麼丟擲一個IllegalTransactionStatException
6. NEVER
如果當前事務上下文中有一個事務,就會丟擲IllegalTransactionStatException