gpt4 book ai didi

java - JPA 中的相同对象

转载 作者:太空宇宙 更新时间:2023-11-04 08:55:21 24 4
gpt4 key购买 nike

我有这样的实体模型(使用 EclipseLink 和 JPA 2.0):

@Entity
class A {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
Long id;
//equals, hashCode autogenerated by nb.

}

还有:

@Entity
class B {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
Long id;

@ManyToOne
A a;
//equals, hashCode autogenerated by nb.
}

我查询所有 A 类型的对象和 B 类型的所有对象,这些对象在 B.a 字段上没有空引用。所有对象都受到管理。例如,我们以Collection<A> aObjects, Collection<B> bObjects为例。

考虑aObjects.get(0).equals(bObjects.get(0).a) ,和a != null 。我怎样才能确保aObjects.get(0) == bObjects.get(0).a

我有相等/相同的对象,但我更喜欢相同的对象

最佳答案

JPA 不是这样工作的。从 JPA API 返回的实体实例是代表持久数据的“水合”容器。 java 对象本身并不特殊,它们只是暂时的数据持有者。

从这个角度来看,对象身份并不重要,对象平等才重要。

如果您的应用程序需要以这种方式进行对象标识,那么您将面临一场失败的战斗,因为 JPA 的设计并不是为了向这个方向弯曲。

关于java - JPA 中的相同对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2412701/

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