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

标签 java jpa playframework playframework-1.x

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

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

那么,我的问题是:

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

最佳答案

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

关于java - 在 Play Framework 中的@Entity Model 类上实现 equals() 和 hashCode() 可以吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14149563/

相关文章:

java - 将 JLabel 放在 JLabel 的顶部,图像在

java - 在其父 shell 的中心生成 swt shell

java - Hibernate一对一关系和外键问题

java - 如何防止用户在 Play 框架中注销后返回到之前的安全页面?

java - 使用 Play 2.0.4 设置 oracle 数据库

java - 配置 AppContextListener 类的应用程序监听器时出错

java - 如何在我的类上创建一个从 0 自动递增到 255 的字段

hibernate - Play 框架中数据库级别的国际化

java - 玩! 2 Framework - 添加Java Mongo驱动

java - 基于 Jenkins 的 Gradle 构建失败