可以在Play Framework中的@Entity Model类上实现equals()和hashCode()吗?

时间:2013-01-04 00:42:47

标签: java jpa playframework playframework-1.x

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

我看了equals()中的JPABase实现,如果它们还没有密钥,它似乎明确地使所有实体对象不相等。

所以,我的问题:

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

1 个答案:

答案 0 :(得分:1)

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