Transaction transaction = session.beginTransaction();
try {
....
//在代码的执行过程中报错了,而且有update类型的DB操作
transaction.commit();
} catch (Exception e) {//插入失败就回滚
e.printStackTrace();
transaction.rollback();
transaction=session.beginTransaction();
.....
transaction.commit();
}在第二次commit 回把之前update的执行给提交到DB吗?
还是只会提交第二次打开事物之后的操作,而第一次的rollback正常回滚了。
try {
....
//在代码的执行过程中报错了,而且有update类型的DB操作
transaction.commit();
} catch (Exception e) {//插入失败就回滚
e.printStackTrace();
transaction.rollback();
transaction=session.beginTransaction();
.....
transaction.commit();
}在第二次commit 回把之前update的执行给提交到DB吗?
还是只会提交第二次打开事物之后的操作,而第一次的rollback正常回滚了。
Session sess = factory.openSession();
Transaction tx;
try {
tx = sess.beginTransaction();
//do some work
...
tx.commit();
}
catch (Exception e) {
if (tx!=null) tx.rollback();
throw e;
}
finally {
sess.close();
}