Hibernate - 更新DB中的对象(实体),基于"不完整"已填充的列

时间:2016-06-07 13:23:44

标签: java sql database spring hibernate

我想在Hibernate中更新对象,比如说已经填充了3个字段( id = 1,firstname =" kim",lastname =" kardashian" ),基于某些" delta" object( id = 1,firstname =" kimirsen",lastname = null )。

我正在使用:

Session.update(object);

我的Object实体类有以下注释:

@DynamicUpdate

我发现它是必需的。

但是我还是得到了:

NULL not allowed for column "LASTNAME"; SQL statement:

异常。

有没有办法,更新对象,而不检查每个字段(如果它为空,如果是,则查询DB中的字段以进行检查,如果它已经填写或未填写)。 ..)?

1 个答案:

答案 0 :(得分:0)

如果你只想更新第一个名字,那么你应该查询数据库并获取带有id的对象,并在调用更新之前修改名字。

我认为你不能遗漏姓氏,并希望Hibernate忽略它。

DynamicUpdate用于指定Hibernate是否应在DB中更新,Persitent对象的所有字段或仅修改的字段(与db相比)。