【发布时间】:2021-11-22 10:01:32
【问题描述】:
给定如下定义的 Source 类:
class Person{
private String name;
private int age;
@OneToMany(fetch = FetchType.LAZY, mappedBy = "peroson")
List<Phone> phones
// getters and setters
}
以及如下定义的电话类:
class Phone{
private Long id;
private String phoneNumber;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "person")
private Person person;
// getters and setters
}
和 DTO 对象:
class PersonDTO{
private String name;
private int age;
List<PhoneDTO> phones
// getters and setters
}
class PhoneDTO{
private Long id;
private String phoneNumber;
private PersonDTO person;
// getters and setters
}
我有一个界面:
@Mapper(uses={PersonMapper.class})
interface PhoneMapper{
PhoneDTO toDto(Phone source);
Phone toEntity(PhoneDTO source);
}
@Mapper(uses={PhoneMapper.class})
interface PersonMapper{
PersonDTO toDto(Person source);
Person toEntity(PersonDTO source);
}
当我使用PeronMapper 或PhoneMapper 时,会出现递归调用,因为PersonMapper 使用PhoneMapper 和PersonMapper 使用PhoneMapper。
如何解决?
【问题讨论】: