Spring事務

編寫業務邏輯方法:
繼承HibernateDaoSupport類,使用HibernateTemplate來持久化,HibernateTemplate是Hibernate session的封裝
默認的回滾是RuntimeException(包括繼承RuntimeException的子類)
普通異常不回滾
在編寫業務邏輯方法時,最好將異常一直向上拋在呈現層處理(struts)
事務的幾種傳播特性:
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屬性執行

---------------------------------------------------------------
Spring事務的隔離級別:
1.ISOLATION_DEFAULT:這是一個PlatfromTransactionManager默認的隔離級別,使用數據庫的事務隔離級別另外四個與JDBC的隔離級別相對應。
2.ISOLATION_READ_UNCOMMTTTED:這是事務最低點隔離級別,他允許另外一個事務可以看到這個事務未提交的數據。這種隔離級別會產生藏讀,不可重複讀和幻想讀
3.ISOLATION_READ_COMMITTED:保證一個事務修改的數據提交後才能被另外一個事務讀取。另外一個事務不能讀取該事務未提交的數據。
4.ISOLATION_REPEATABLE_READ:這種事務隔離級別可以防止髒讀,不可重複讀。但是可能出現幻想讀。它除了保證一個事務不能讀取另一個事務未提交的數據外,還保證了避免下面的情況產生(不可重複讀);
5.ISOLATION_SERIALIZABLE:這是花費最高代價但最可靠的事務隔離級別。事務被處理爲順序執行。除了防止髒讀,不可重複讀外,還避免了幻想讀。
發佈了38 篇原創文章 · 獲贊 0 · 訪問量 1963
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章