在hibernate中更新一些列值

Ana*_*and 2 java hibernate

我有一张桌子,其中有14列.现在我有一个对象对应于我只有5个值要更新的表.
我使用saveOrUpdate方法来保存/更新行.问题是当我使用此方法更新这5列时,所有其他9列值都设置为null.
一个解决方案是我编写更新sql查询来做同样的事情,但我想使用Hibernate API而不是sql查询.
有没有办法实现这一目标?

JB *_*zet 9

Foo objectToUpdate = (Foo) session.get(Foo.class, idOfObjectToUpdate);
objectToUpdate.setField1(newValue1);
objectToUpdate.setField2(newValue2);
Run Code Online (Sandbox Code Playgroud)

无需调用saveOrUpdate()merge():对象已附加,因此在事务结束时刷新并提交所有内容.

  • @anand你不能在没有实际加载它的情况下更新对象.即使你实际上没有调用get/load方法,hibernate也必须先加载对象才能对它进行任何更改.此外,您的评论对于拥有10万声誉的人来说有点失控 (4认同)