我的Play应用程序中有一个@Entity
- 带注释的Model
类,我将其填入Set
以确保在保存到数据库之前的唯一性。由于尚未保存对象,因此它们没有键值。所以比较必须基于它们的属性。
我看了equals()
中的JPABase
实现,如果它们还没有密钥,它似乎明确地使所有实体对象不相等。
所以,我的问题:
equals()
子类中实施hashCode()
和Model
吗?super.equals()
,我应该如何处理结果?答案 0 :(得分:1)
我不建议在应用程序模型类中实现equals
或hashCode
。最终应该由数据库确保唯一性。从应用程序的角度来看,几乎总是对某个字段施加唯一性,例如,用户名或电子邮件等。我从未遇到过通过hashCode
或equals
方法计算整个对象的数据实体唯一性的情况。