我的 Play 应用程序中有一个 @Entity
注释的 Model
类,我将其填充到 Set
中以确保在执行之前的唯一性保存到数据库。由于对象尚未保存,因此它们没有键值。所以比较必须基于它们的属性。
我看了一下 JPABase
中的 equals()
实现,如果它们还没有键,它似乎明确地使所有实体对象不相等。
那么,我的问题是:
- 可以在我的
Model
子类中实现equals()
和hashCode()
吗? - 如果是这样,最好/正确的方法是什么?我应该调用
super.equals()
吗?我应该如何处理结果?
最佳答案
我不建议在应用程序模型类中实现equals
或hashCode
。最后要由数据库来保证唯一性。从应用程序的角度来看,唯一性几乎总是强加于某个领域,例如用户名或电子邮件等。我从未遇到过通过 hashCode
或 equals
方法在整个对象上计算数据实体唯一性的情况。
关于java - 在 Play Framework 中的@Entity Model 类上实现 equals() 和 hashCode() 可以吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14149563/