傳播行為
用來描述由某一個事務傳播行為修飾的方法被嵌套進另一個方法的時事務如何傳播
常用
PROPAGATION_REQUIRED
如果當前沒有事務,則新建一個事務,如果已存在一個事務中,則加入到此事務中。

PROPAGATION_REQUIRES_NEW
新建事務,如果當前存在事務,就把當前事務暫停。

PROPAGATION_NESTED
如果當前存在事務,則在嵌套事務內執行。
如果當前沒有事務,則執行與 PROPAGATION_REQUIRED 類似的操作。
主要依賴於資料庫的保存點 (Save Point) 技術,若記錄了一個保存點,可以通過來回滾回到某個保存點。
如果庫支持保存點技術時就啟用保存點技術;如果不支持就會新建一個事務去執行事務,就相當於 REQUIRED_NEW。
不常用
PROPAGATION_SUPPORTS
支持當前事務,如果當前沒有事務,就以非事務方式執行。
PROPAGATION_MANDATORY
使用當前的事務,如果當前沒有事務,就拋出異常。
PROPAGATION_NOT_SUPPORTED
以非事務方式執行操作,如果當前存在事務,就把當前事務暫停。
PROPAGATION_NEVER
以非事務方式執行,如果當前存在事務,則拋出異常。
Last updated
Was this helpful?