Hibernate:saveorupdate()不更新对象

时间:2014-07-29 03:37:02

标签: java mysql database spring hibernate

我使用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对象吗?

2 个答案:

答案 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可序列化。那会起作用的