[英]Check if transaction in hibernate successful
我正在使用休眠模式開發應用程序,並且像往常一樣在hibernate
事務中保存Entities
。 如果事務成功完成,我想從事務中“獲取反饋”,並據此執行下一個代碼。 這是我用來更新實體的簡單方法:
public boolean updateDepartment(Department s) {
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
Transaction tx = HibernateUtil.getTransaction(session);
boolean success = false;
try
{
tx.begin();
session.update(s);
tx.commit();
success = true;
}
catch (Exception e)
{
tx.rollback();
e.printStackTrace();
success = false;
}
return success;
}
從其他代碼調用該方法:
boolean b = dao.updateDepartment(d);
if(b)
{
doStuff();
}
else
{
showMessage("Save not usccessful. Try again");
}
我的問題是這種使用boolean
變量的方法是否是最佳方法,或者是否可以采用更好的方法來執行。 如果我的做法是確定的,這將是更好,如果return
聲明將與包圍finally
?
session.getTransaction()。wasCommitted(); 即使事務已提交,也會返回false。 請看看
對我有用的是
// close database connection
public boolean closeDBConnection() {
boolean successful = false;
try {
session.getTransaction().commit();
successful = true;
} catch (HibernateException r) {
//log exception here
} finally {
session.close();
session = null;
}
return successful;
}
我們可以用:
session.getTransaction().getStatus() == TransactionStatus.COMMITTED
相似地
TransactionStatus.ROLLED_BACK
但是只有休眠4
您可以使用session.getTransaction().wasCommitted();
確認交易是否已提交session.getTransaction().wasCommitted();
聲明。 如果提交了tx,則返回TRUE。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.