Hibernate wasRolledBack方法:判斷事務是否回滾

2020-07-16 10:04:57
wasRolledBack 方法用於判斷事務是否回滾。

語法:

wasRolledBack()


返回值:表示判斷結果的 true 或 false,為 true 時表示已經回滾,為 false 時表示未回滾。

範例

判斷事務是否回滾,關鍵程式碼如下:
try{
  tx = session.beginTransaction();  //開啟事務
  UserForm uf = new UserForm();  //定義JavaBean物件
  uf.setUsername(username);  //設定物件屬性
  uf.setPwd(pwd);
  session.saveOrUpdate(uf);
  tx.commit();  //提交事務
}catch(Exception e){
  if(tx!=null){
    if(tx.wasRolledBack()){
      System.out.println("事務已經回滾");
    }else{
      System.out.println("事務沒有回滾");
    }
    tx.rollback();//回滾事務
    if(tx.wasRolledBack()){
      System.out.println("事務已經回滾");
    }else{
      System.out.println("事務沒有回滾");
    }
  }
}
執行上面的程式碼,當產生異常資訊時,將在控制台顯示以下內容:
事務沒有回滾
事務已經回滾