當(dāng)前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
数据库事务原理详解-Spring 事务的传播属性
生活随笔
收集整理的這篇文章主要介紹了
数据库事务原理详解-Spring 事务的传播属性
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
所謂spring 事務(wù)的傳播屬性,就是定義在存在多個事務(wù)同時存在的時候,spring 應(yīng)該如何處理這些事務(wù)的行為。這些屬性在TransactionDefinition 中定義,具體常量的解釋見下表:
| 常量名稱 | 常量解釋 |
| PROPAGATION_REQUIRED | 支持當(dāng)前事務(wù),如果當(dāng)前沒有事務(wù),就新建一個事務(wù)。這是最常見的選擇,也是Spring默認(rèn)的事務(wù)的傳播。 |
| PROPAGATION_REQUIRES_NEW | 新建事務(wù),如果當(dāng)前存在事務(wù),把當(dāng)前事務(wù)掛起。新建的事務(wù)將和被掛起的事務(wù)沒有任何關(guān)系,是兩個獨(dú)立的事務(wù),外層事務(wù)失敗回滾之后,不能回滾內(nèi)層事務(wù)執(zhí)行的結(jié)果,內(nèi)層事務(wù)失敗拋出異常,外層事務(wù)捕獲,也可以不處理回滾操作 |
| PROPAGATION_SUPPORTS | 支持當(dāng)前事務(wù),如果當(dāng)前沒有事務(wù),就以非事務(wù)方式執(zhí)行。 |
| PROPAGATION_MANDATORY | 支持當(dāng)前事務(wù),如果當(dāng)前沒有事務(wù),就拋出異常。 |
| PROPAGATION_NOT_SUPPORTED | 以非事務(wù)方式執(zhí)行操作,如果當(dāng)前存在事務(wù),就把當(dāng)前事務(wù)掛起。 |
| PROPAGATION_NEVER | 以非事務(wù)方式執(zhí)行,如果當(dāng)前存在事務(wù),則拋出異常。 |
| PROPAGATION_NESTED | 如果一個活動的事務(wù)存在,則運(yùn)行在一個嵌套的事務(wù)中。如果沒有活動事務(wù),則按REQUIRED 屬性執(zhí)行。它使用了一個單獨(dú)的事務(wù),這個事務(wù)擁有多個可以回滾的保存點(diǎn)。內(nèi)部事務(wù)的回滾不會對外部事務(wù)造成影響。它只對DataSourceTransactionManager 事務(wù)管理器起效。 |
?
?
總結(jié)
以上是生活随笔為你收集整理的数据库事务原理详解-Spring 事务的传播属性的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 事务的基本原理
- 下一篇: Spring 中的隔离级别