Hibernate事務管理

事務只是一個工做單位(單元)。 在這種狀況下,若是一個步驟失敗,則整個事務失敗(稱爲原子性)。 ACID屬性(原子性,一致性,隔離性和持久性)能夠描述事務。java

clipboard.png

Hibernate中的事務接口

在hibernate框架中,咱們有Transaction接口來定義工做單元。 它維護了事務實現(JTA,JDBC)的抽象。
事務與Session相關聯,並經過調用session.beginTransaction()實例化。
Transaction接口的方法以下:session

  1. void begin() 開始一個新的事務。
  2. void commit() 結束工做單位,在FlushMode.NEVER中除外。
  3. void rollback() 強制此事務回滾。
  4. void setTimeout(int seconds) 它爲由此實例開始的後續調用啓動的任何事務設置事務超時。
  5. boolean isAlive() 檢查交易是否仍然存在。
  6. void registerSynchronization(Synchronization s) 爲此事務註冊用戶同步回調。
  7. boolean wasCommited() 檢查事務是否成功提交。
  8. boolean wasRolledBack() 檢查事務是否成功回滾。

Hibernate中的事務管理示例

在hibernate中,若是發生任何異常,最好回滾事務,以便資源能夠釋放自由。 咱們來看看hibernate中事務管理的例子。框架

Session session = null;  Transaction tx = null;  
try {  
    session = sessionFactory.openSession();  
    tx = session.beginTransaction();  
    //some action  

    tx.commit();  }catch (Exception ex) {  
    ex.printStackTrace();  
    tx.rollback();  }  finally {session.close();
}

Java學習路線推薦:阿里雲大學——開發者課堂學習

相關文章
相關標籤/搜索