java - 更新 hibernate 中的一些列值

标签 java hibernate

我有一个表,其中有 14 列。现在我有一个与表相对应的对象,其中只有 5 个值需要更新。
我正在使用 saveOrUpdate 方法来保存/更新行。问题是,当我使用此方法更新这 5 列时,所有其他 9 列值都设置为 null。
一种解决方案是我编写更新 sql 查询来执行相同的操作,但我想使用 Hibernate API 的而不是 sql 查询。
有什么办法可以实现这一点吗?

最佳答案

Foo objectToUpdate = (Foo) session.get(Foo.class, idOfObjectToUpdate);
objectToUpdate.setField1(newValue1);
objectToUpdate.setField2(newValue2);

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

关于java - 更新 hibernate 中的一些列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11815104/

相关文章:

java - 用于序列化 Base64 编码的 Java 对象的 LONGTEXT 或 BLOB

java - 给 int 赋值时括号中的 'int' 是什么意思?

java - Hibernate 按条件分组

java - 在 Hibernate 中获取插入的 id 是更好的方法吗?

java - 在@ManyToOne 端合并托管实体

java - java中检查Document对象是否为JSON格式

Java - 扫描仪(System.in)和 "Blocking a thread"

java - 奇怪的分析结果 : definitely non-bottleneck method pops up

hibernate - 使用 .save() 或 .update() 而不是 .saveOrUpdate() 时不会触发自己的 Hibernate DefaultSaveOrUpdateEventListener

mysql - Hibernate 不释放 MySQL 连接