是否可以在更新查询中将实体的某些成员标记为“已忽略”?
我基本上有一个实体,可以更新。但并非所有实体成员都可以在设置后更新。因此,当我使用Spring将表单数据绑定到我的Entity时,未在表单上公开的字段都具有空值。更新实体后,映射列中会写入null
个值。
我已经把不可更改的值暂时隐藏了表单值,但我不认为这是最好的解决方案。还有更好的吗?
感谢。
答案 0 :(得分:7)
最好的解决方案IMO是避免从表单字段重构实体的新实例。相反,采用现有的,完全填充的实体实例,更改表单中字段的值,然后合并此实体。
另一种方法是将列标记为不可更新(使用@Column(updatable = false)
),但这将使列不可更新用于所有用例,我认为这不是一个好主意,通常:如果某些用户可能无法更改某些字段,但可能被其他用户或管理数据迁移工具更改,则将该列设置为不可更新将会很烦人。