spring事务管理一:关于事务管理的接口
生活随笔
收集整理的這篇文章主要介紹了
spring事务管理一:关于事务管理的接口
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
2019獨角獸企業重金招聘Python工程師標準>>>
?
spring事務管理主要有三個接口:
?詳細:
關于事務隔離級別,有5種。分別是:
- ISOLATION_DEFAULT,默認隔離級別,也就是根據數據的默認隔離級別,不同的數據庫的隔離級別也不盡相同。
- ISOLATION_READ_UNCOMMITTED,級別最低的隔離級別。允許讀取其他還未提交但已改變的數據,可導致臟讀、幻讀、不可重復讀等異常
- ISOLATION_READ_COMMITTED,提交隔離級別。允許讀取其他已經提交的數據,可防止臟讀,但可能出現幻讀、不可重復讀
- ISOLATION_REPEATABLE_READ,更高級別的隔離。對相同字段的多次讀取是一致的,可防止臟讀、不可重復讀,但可能出現幻讀
- ISOLATION_SERIALIZABLE,級別最高的隔離。采用鎖的方式進行事務操作,可以防止臟讀、幻讀、不可重復讀,但隨之而來的付出的時間和性能代價也更大
關于事務傳播行為,事務傳播行為主要是用來解決業務層對事務的調用問題,有7種。分別是:
- PROPAGATION_REQUIRED,默認的傳播行為,當前如果有事務,Spring就會使用該事務,否則會開始一個新事務
- PROPAGATION_SUPPORTS,如果當前有事務則使用,沒有也不會開始新事務
- PROPAGATION_MANDATORY,如果當前有事務則使用,沒有則會拋出異常
- PROPAGATION_REQUIRES_NEW,總是會開啟新事務,如果當前已經有事務存在會將原有的事務掛起
- PROPAGATION_NOT_SUPPORTED,以非事務形式運行行為,如果當前已經有事務存在則掛起該事務
- PROPAGATION_NEVER,以非事務形式運行行為,如果當前已經有事務存在則拋出異常
- PROPAGATION_NESTED,如果當前有事務存在,則嵌套在該事務下執行;沒有則會開啟新事務
事務超時時間則是以getTimeout()方法獲取,單位為秒(s);是否只讀則通過isReadOnly()方法獲取。
關于TransactionStatus接口的操作主要有三個,分別是isNewTransaction() 是否是新事務、isRollbackOnly()是否是只回滾事務,還有一個最重要的方法setRollbackOnly(),這個方法將事務設置為只允許回滾操作,即事務在任何操作下都是最終執行回滾。
?
轉載于:https://my.oschina.net/u/2428684/blog/686034
總結
以上是生活随笔為你收集整理的spring事务管理一:关于事务管理的接口的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PostgreSQL中如何查看一个表所对
- 下一篇: python data analysis