java - hibernate :saveorupdate() 不更新对象

标签 java mysql database spring hibernate

我正在使用 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/

相关文章:

java - 将我的 Java FreeChart 放入 JPanel 时遇到问题

java - EJB。它是什么,为什么存在以及它是如何工作的?

java - spring boot 图片显示url

java - GWT - 更新面板中的表

php - 无法为我的博客设置 CMS 管理员

java - 我的数据库在调用 onDestroy() 后删除了所有行

java - 在 java 客户端中设置 MQ header

mysql - 从查询中的 4 个连接表中获取数据 (MySQL)

mysql - 在另一个表中插入行时添加列

mysql - 将表列转换为行并使用一个表中的值(如果它不存在于另一个表中)