gpt4 book ai didi

java - 可嵌入的 jpa 类应该实现 equals 和 hashCode 吗?

转载 作者:搜寻专家 更新时间:2023-10-31 20:06:39 25 4
gpt4 key购买 nike

假设我有以下场景:

@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 equals 正常工作?

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

最佳答案

我不认为 JPA 会要求您实现 equals 和 hashcode。 Hibernate 曾经是,但最近对文档的审查表明这不再是必需的。

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

关于java - 可嵌入的 jpa 类应该实现 equals 和 hashCode 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4762573/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com