Hibernate設置事務

<!--

  事務隔離級別

  hibernate.connection.isolation = 4

  1-- Read uncommitted isolation

  2-- Read committed isolation

  4-- Repeatable read isolation

  8-- Serializable isolation

-->

<property name="hibernate.connection.isolation">4</property>

在hibernate中,確保使用同一個session的問題,hibernate已經幫我們解決了. 我們開發人員只需要調用sessionFactory.getCurrentSession()方法即可獲得與當前線程綁定的session對象

調用getCurrentSession方法必須配合主配置中的一段配置

 

      <!-- 設置hibernate中session與線程綁定 -->
        <property name="hibernate.current_session_context_class">thread</property>

通過getCurrentSession方法獲得的session對象.當事務提交時,session會自動關閉.不要手動調用close關閉.

 

在Hibernate中,可以通過代碼來操作管理事務,如通過

“Transaction tx=session.beginTransactiong();”

開啓一個事務,持久化操作後,通過"tx.commit();" 提交事務;如果事務出現異常,又通過“tx.rollback();"操作來撤銷事務(事務回滾)。

到這裏我們已經設置了事務的隔離級別,那麼我們在真正進行事務管理的時候,需要考慮事務的應用場景,

也就是說我們的事務控制不應該是在DAO層實現的,應該在Service層實現

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章