我正在使用 spring 来维护我应用程序中的事务。 我想在数据库中保存新的并更新现有的用户详细信息。但是我无法更新对数据库的更改。查看我下面的代码并告诉我我的代码做错了什么?
Session session = getSessionFactory().getCurrentSession();
UserDetails userDetails = (UserDetails) session.get(
UserDetails.class, new Integer(userId));
if (userDetails!= null) {
userDetails.setUserName(name);
userDetails.setUserDesc(desc);
} else {
userDetails= new UserAuthDetails();
userDetails.setId(userId);
userDetails.setUserName(name);
userDetails.setUserDesc(desc);
userDetails.setCreatedDt(new Date());
}
session.saveOrUpdate(userDetails);
任何人都可以帮助更新现有的 userdetail 对象吗?
最佳答案
您需要在保存或更新到数据库之前开始一个事务。 您的代码应如下所示:
Session session = getSessionFactory().getCurrentSession();
Transaction tx=session.beginTransaction();
UserDetails userDetails = (UserDetails) session.get(
UserDetails.class, new Integer(userId));
if (userDetails!= null) {
userDetails.setUserName(name);
userDetails.setUserDesc(desc);
} else {
userDetails= new UserAuthDetails();
userDetails.setId(userId);
userDetails.setUserName(name);
userDetails.setUserDesc(desc);
userDetails.setCreatedDt(new Date());
}
session.saveOrUpdate(userDetails);
tx.commit();
关于java - hibernate :saveorupdate() 不更新对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25007881/