【发布时间】:2020-11-25 11:02:12
【问题描述】:
在阅读了一些关于该主题的内容后,我对 @Entity 相等性的 Hibernate/JPA 要求有点迷茫。我真的需要调整我的@EqualsAndHashCode 以使我的实体在 2020 年仍然基于数据库唯一性相等吗?那么@Id 元注释的意义何在?
我需要能够在对象级别比较我的实体,所以现在我只是根据@Id 之外的所有字段实现了我的 EqualsAndHashCode。
如果我继续采用这种方法,我会面临哪些问题?如果由于某种原因Hibernate尝试存储或混合具有相同@Id但与我的实现不相等的2个实体,那么数据库是否会抛出异常?真的有风险吗?我很确定我在过去看到过很多经过适当测试的项目,没有人定义任何特定的@EqualsAndHashCode,所以默认情况下只是比较实例,这些项目通过了各种绿色的 CRUD 测试,并且在生产中没有错误
【问题讨论】:
标签: java hibernate jpa spring-data-jpa spring-data