加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – Hibernate:saveorupdate()没有更新对象

发布时间:2020-12-15 04:21:26 所属栏目:Java 来源:网络整理
导读:我使用 spring来维护我的应用程序中的事务. 我想保存新的并更新DB中的现有用户详细信息.但是我无法更新我对数据库的更改.请参阅下面的代码并告诉我在代码中出错了什么? Session session = getSessionFactory().getCurrentSession(); UserDetails userDetail
我使用 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对象吗?

解决方法

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

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();

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读