我有两个相互引用的 JPA2 实体类
class Person {
int id;
String name;
@ManyToOne(fetch = FetchType.LAZY)
Company company;
}
class Company{
int id;
String name;
@ManyToOne(fetch = FetchType.LAZY)
Person representative;
}
拥有这些数据:
Company company1 = Company(1,"Company1", 2)
Company company2 = Company(2,"Company2", 1)
Person person1 = Person (1,"Person1", 1)
Person person2 = Person (2,"Person2", 2)
person2 为 company2 工作,其代表为 person1 为 company1 工作,其代表再次为 person2
我知道 Dozer 能够将此模型复制到 DTO(CompanyDTO 和 PersonDTO)。在我的测试中,它们可以工作并且具有无限的递归级别。我理解这是因为 Dozer 使用与 DTO 中的引用相同的实例化对象。
我的问题是,如果有成千上万的人代表数百家公司,PersonDTO 实例的图表会不会太大而无法处理?如何为这种情况指定某种限制?