0
以下代碼是否可以正常工作,或者是否需要在開始工作之前先開始事務。可以在提交/回滾時調用hibernate中的事務開始
Session session = SessionFactory.openSession();
//do some work like session.save/Update
finally{
session.beginTransaction().commit();
}
以下代碼是否可以正常工作,或者是否需要在開始工作之前先開始事務。可以在提交/回滾時調用hibernate中的事務開始
Session session = SessionFactory.openSession();
//do some work like session.save/Update
finally{
session.beginTransaction().commit();
}
編號當然,作爲交易一部分的代碼必須在交易的開始和提交之間。
這裏(正是the documentation說:
會話/事務處理方式如下所示:
// Non-managed environment idiom
Session sess = factory.openSession();
Transaction tx = null;
try {
tx = sess.beginTransaction();
// do some work
...
tx.commit();
}
catch (RuntimeException e) {
if (tx != null) tx.rollback();
throw e; // or display error message
}
finally {
sess.close();
}
不,你需要管理的事務,致力於爲獲得立竿見影的效果和任何Hibernate拋出的異常是FATAL,你必須回滾事務並關閉當前會話。
session.save/session.update需要在完成之後完成r開始交易。 –
但是,當我測試上面的代碼,它工作正常,我的意思是數據被提交。但我不明白的是在開始任何會話之前開始交易的真正目的。 – Surat