使用Hibernate更新表时忽略实体bean的空值

Vis*_*ant 12 java hibernate

遇到同样的问题null在更新数据库时是否有任何忽略值的方法Hibernate

每当你调用update(); 在Session中,它还将更新在对象中找到的空值.

例:

User user = new User();
user.setUserId(5);
user.setUserName("Maarten");
user.setUserFirstName(null); // but in database this value is not null

session.update( user);
Run Code Online (Sandbox Code Playgroud)

要么

session.saveOrUpdate( user);
Run Code Online (Sandbox Code Playgroud)

DB现在将更新用户,但会将用户firstname设置为null(因为它在对象中为null).

Hibernate中是否有任何方法或方法可以避免这种情况(我不想触发select/update查询来设置bean)?它将忽略空值?

Gun*_*iah 2

休眠动态更新

动态更新属性告诉 Hibernate 是否在 SQL UPDATE 语句中包含未修改的属性。