Plan
에 Activity
이라는 목록이있는 클래스가 있습니다. Activity
클래스에는 Plan
이라는 단일 참조가 있습니다.JPA OneToMany 관계를 DTO로 변환
@Entity
public class Plan {
@OneToMany(mappedBy = "Plan")
private List<Activity> activities;
}
@Entity
public class Activity {
@ManyToOne
@JoinColumn(name= "PLAN_ID")
private Plan plan;
}
내가 프리젠 테이션 레이어로 전송하는 DTO들로 변환해야합니다 따라서이 같은 OneToMany 관계가있다. 그래서 간단하게 도메인 객체를 POJO로 변환하는 어셈블러 클래스가 있습니다. 당신이 볼 수 있듯이
public class PlanAssembler {
public static PlanDTO makeDTO(Plan p) {
PlanDTO result = new PlanDTO();
result.setProperty(p.getProperty);
...
for (Activity a: p.getActivity()) {
// Here I need to iterate over each activity to convert it to DTO
// But in ActivityAssembler, I also need PlanDTO
}
는 PlanAssembler
에, 나는 모든 활동을 반복하고 ActivityDTO
로 변환 할 필요가 있지만, 문제는,이다 ActivityAssembler
에 나는 또한 ActivityDTO
를 구성하는 PlanDTO
이 필요합니다. 무한 루프이 될 것입니다. 이것을 어떻게 분류 할 수 있습니까?
도와주세요.
당신이 당신의 POJO의 DTO들로 변환하는 도저와 같은 도구를 사용하여 생각 해 봤나? 그들은 이런 종류의 역 참조를 사용하는 논리를 가지고 있습니다 : http://dozer.sourceforge.net/documentation/faq.html#infinite-loop – Esquive