2

我的 Play 应用程序中有一个@Entity-annotatedModel类,我将其填充到一个Set以确保在保存到数据库之前的唯一性。由于对象尚未保存,因此它们没有键值。因此,必须根据它们的属性进行比较。

我看了一下 中的equals()实现JPABase,如果它们还没有键,它似乎显式地使所有实体对象不相等。

所以,我的问题:

  1. 可以在我的子类中实现equals()和吗?hashCode()Model
  2. 如果是这样,最好/正确的方法是什么?我应该打电话super.equals(),我应该如何处理结果?
4

1 回答 1

1

我不建议实现equalshashCode在应用程序模型类中。唯一性最终应该由数据库来保证。从应用程序的角度来看,唯一性几乎总是强加于某个字段,例如用户名或电子邮件等。我从未遇到过通过hashCodeorequals方法对整个对象计算数据实体唯一性的情况。

于 2013-01-04T01:23:15.987 回答