我使用spring来维护我的应用程序中的事务。 我想保存新的并更新DB中的现有用户详细信息。但是我无法更新我对数据库的更改。请参阅下面的代码并告诉我在代码中出错了什么?
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对象吗?
答案 0 :(得分:7)
您需要在保存或更新数据库之前开始事务。 您的代码应如下所示:
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();
答案 1 :(得分:0)
使您的bean可序列化。那会起作用的