加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 应该嵌入jpa类实现equals和hashCode吗?

发布时间:2020-12-14 19:13:29 所属栏目:Java 来源:网络整理
导读:假设我有以下情况: @Entitypublic class Person { @Id private Long id; //Surrogate key @Embedded private Name name; //Natural key public int hashCode() { ... //based on natural key Name } public boolean equals(Object obj) { ... //based on na

假设我有以下情况:

@Entity
public class Person {
    @Id
    private Long id; //Surrogate key

    @Embedded
    private Name name; //Natural key

    public int hashCode() {
        ... //based on natural key Name
    }
    public boolean equals(Object obj) {
        ... //based on natural key Name
    }
}

@Embeddable
public class Name {
    private String firstName;
    private String middleName;
    private String lastName;

    //Should I implement equals/hashCode baseed on the three fields?
}

Name类是否应该在Name类上实现equals和hashCode以使Person等于正常工作?

对于将用作EmbeddedId的Embeddable对象是必须的.但在这个例子中我使用的是代理键.

最佳答案
我不相信JPA要求你实现equals和hashcode. Hibernate曾经使用过,但是最近对文档的评论表明这不再是必需的.

但当然,实现hashcode和equals总是一个好主意.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读