講一下 Spring的事務傳播特性
1. PROPAGATION_REQUIRED: 如果存在一個事務,則支持當前事務。如果沒有事務則開啟
2. PROPAGATION_SUPPORTS: 如果存在一個事務,支持當前事務。如果沒有事務,則非事務的執行
3. PROPAGATION_MANDATORY: 如果已經存在一個事務,支持當前事務。如果沒有一個活動的事務,則拋出異常。
4. PROPAGATION_REQUIRES_NEW: 總是開啟一個新的事務。如果一個事務已經存在,則將這個存在的事務掛起。
5. PROPAGATION_NOT_SUPPORTED: 總是非事務地執行,並掛起任何存在的事務。
6. PROPAGATION_NEVER: 總是非事務地執行,如果存在一個活動事務,則拋出異常
7. PROPAGATION_NESTED:如果一個活動的事務存在,則運行在一個嵌套的事務中. 如果沒有活動事務, 則按 TransactionDefinition.PROPAGATION_REQUIRED 屬性執行
總結一下:
Propagation
Required 需要 如果存在一個事務,則支持當前事務。如果沒有事務則開啟
Supports 支持 如果存在一個事務,支持當前事務。如果沒有事務,則非事務的執行
Mandatory 必要的 如果已經存在一個事務,支持當前事務。如果沒有一個活動的事務,則
拋出異常。
required_new 總是開啟一個新的事務。如果一個事務已經存在,則將這個存在的事務掛起。
Not_support 總是非事務地執行,並掛起任何存在的事務。
Never 絕不 總是非事務地執行,如果存在一個活動事務,則拋出異常
Nested 嵌套的 如果有就嵌套、沒有就開啟事務
講一下 Spring的事務傳播特性