我有两个相互引用的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实例的图表难道无法处理吗?如何为这种情况指定某种限制?
答案 0 :(得分:4)
有两种可能的策略来处理这种情况。