hibernate - Hibernate在更新时可以忽略实体成员吗?

标签 hibernate spring

是否可以在更新查询中将实体的某些成员标记为“忽略”?

我基本上有一个可以更新的实体。但并不是实体的所有成员一旦设置就可以更新。因此,当我使用 Spring 将表单数据绑定(bind)到我的实体时,表单上未公开的字段都具有空值。当实体更新时,映射列将写入 null 值。

我现在已经将不可更改的值隐藏了表单值,但我认为这不是最好的解决方案。还有更好的吗?

谢谢。

最佳答案

在我看来,最好的解决方案是避免从表单字段重建实体的新实例。相反,采用现有的、完全填充的实体实例,更改表单中字段的值,然后合并该实体。

另一种方法是将列标记为不可更新(使用@Column(updatable = false)),但这将使该列对于所有用例都不可更新,但我不这样做一般来说,我不认为这是一个好主意:如果某些字段可能不会被某些用户更改,但可能会被其他用户或管理数据迁移工具更改,那么将列设置为不可更新将会很烦人。

关于hibernate - Hibernate在更新时可以忽略实体成员吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8924715/

相关文章:

java - 如何在 Spring Boot Rest Interface 中正确划分业务层和数据层

java - 如何在hibernate环境中查询RevisionEntity

java - 在 DAO 层之外使用 @org.springframework.transaction.annotation.Transactional?

java - 无法在 spring-servlet.xml 文件中创建 org.apache.commons.dbcp.BasicDataSource 的 bean

java - 自动计算字段和用户输入值的设计模式

java - 事务未回滚

java - Hibernate连接设计

database - hibernate 和并发

java - C3P0 托管连接池无法从其主要资源或工厂资源中获取资源

mysql - Spring Boot 应用程序 : java. lang.IllegalArgumentException:必须至少存在一个 JPA 元模型