是否可以在更新查询中将实体的某些成员标记为“忽略”?
我基本上有一个可以更新的实体。但并不是实体的所有成员一旦设置就可以更新。因此,当我使用 Spring 将表单数据绑定(bind)到我的实体时,表单上未公开的字段都具有空值。当实体更新时,映射列将写入 null
值。
我现在已经将不可更改的值隐藏了表单值,但我认为这不是最好的解决方案。还有更好的吗?
谢谢。
最佳答案
在我看来,最好的解决方案是避免从表单字段重建实体的新实例。相反,采用现有的、完全填充的实体实例,更改表单中字段的值,然后合并该实体。
另一种方法是将列标记为不可更新(使用@Column(updatable = false)
),但这将使该列对于所有用例都不可更新,但我不这样做一般来说,我不认为这是一个好主意:如果某些字段可能不会被某些用户更改,但可能会被其他用户或管理数据迁移工具更改,那么将列设置为不可更新将会很烦人。
关于hibernate - Hibernate在更新时可以忽略实体成员吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8924715/