gpt4 book ai didi

java - 检查hibernate中的事务是否成功

转载 作者:搜寻专家 更新时间:2023-10-31 20:11:43 24 4
gpt4 key购买 nike

我正在使用 hibernate 开发应用程序,并且像往常一样在 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。请看一下

wasCommitted returns 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;
}

关于java - 检查hibernate中的事务是否成功,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23239474/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com