Java 仅更新hibernate/Spring MVC中的非空/非空字段

Java 仅更新hibernate/Spring MVC中的非空/非空字段,java,hibernate,spring-mvc,Java,Hibernate,Spring Mvc,我有下一个情况。我有一个类User,它是用于用户添加/编辑/删除的实体和绑定JSP表单-有3个不同的按钮。我的问题是,当我想编辑特定用户(我在表单中输入用户名和要编辑的字段)时,hibernate会生成包含所有字段的SQL查询: Hibernate: update users set user_age=?, user_country=?, user_email=?, user_login=?, user_name=?, user_password=?, user_status=? where u

我有下一个情况。我有一个类User,它是用于用户添加/编辑/删除的实体和绑定JSP表单-有3个不同的按钮。我的问题是,当我想编辑特定用户(我在表单中输入用户名和要编辑的字段)时,hibernate会生成包含所有字段的SQL查询:

Hibernate: update users set user_age=?, user_country=?, user_email=?, user_login=?, user_name=?, user_password=?, user_status=? where user_id=?
问题是其他的是空的或空的。我得到一个错误:

org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1
我如何让hibernate生成这样的内容(以防我在表单中加入新时代):


@DynamicUpdate(值=true)-不工作。我认为此anotation仅适用于登录表单分析和绑定后未创建的对象。

当用户提交表单时,您需要使用hibernate从数据库中重新提取用户,然后设置该对象的属性值。然后保存它。这样其他值就不是空的或空的

Hibernate: update users set user_age=? where user_id=?