Hibernate:saveOrUpdate()不更新对象

4
我正在使用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);

有人能帮助更新现有的用户详细信息对象吗?


你能否发布你的服务/数据访问对象/控制器的完整代码,以及事务是在哪里和如何启动的? - Ankur Singhal
2个回答

9

在保存或更新数据库之前,您需要开始一个事务。您的代码应如下所示:

 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

让你的Bean可序列化。那样就可以了。


1
你需要解释你的答案。 - SnakeException

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接