Hibernate模型的部分更新

时间:2011-11-14 17:14:07

标签: java hibernate

更新仅需要更新某些字段的模型的最佳做法是什么?

例如

如果我有一个人模型:

名称 生日 地址

我想要仅更新的表单:

地址

我目前可以看到的两个选项是:

  1. 要拥有一个只有地址的自定义表单模型 - 在回发时调用数据库来检索我的对象以填充Name和Birthdate,然后继续回到数据库。
  2. 自定义更新SQL以仅更新相关字段。
  3. 如果可能的话,我更愿意使用hibernate模型,所以我目前正在使用#1。

    有更好的方法吗?

2 个答案:

答案 0 :(得分:6)

如何使用an attribute called dynamic-update on the class mapping将Hibernate构造SQL Update配置为仅更新已更改的字段。

如果hibernate留下有用的外观功能,默认情况下会停用它,因为需要进行权衡。链接的文档继续说:

  

子类不继承动态更新和动态插入设置,因此也可以在或元素上指定它们。虽然这些设置可以在某些情况下提高性能,但实际上可能会降低其他设置的性能。

答案 1 :(得分:1)

最佳做法是在您需要之前跳过性能优化。