JPA中的“循环引用”是反模式吗?

2022-09-03 07:11:00

假设汽车有一个车轮列表,同时车轮有一个汽车对所有者的引用。

public class Car{
List<Wheel> wheels;

}

public class Wheel{
Car owner;
}

我之所以问这个问题,是因为在JPA中很容易像这样操作,而不是再次查询数据库以获取父实体。


答案 1

像这样的双向关系在JPA中是完全有效和预期的。这就是酒店的全部意义。这篇文章有一个很好的解释:mappedBy

在双向 JPA OneToMany/ManyToOne 关联中,“关联的反面”是什么意思?


答案 2

这当然不是一个反模式。

您甚至可以说这非常方便,因为使用JPA实现它非常容易。两个可能的查询变得非常微不足道;从某辆车上获取所有车轮,并将汽车用于某个车轮。