我有一个班级Plan,其中有一个Activity. 所述Activity类具有到单个参考Plan。因此,有一个一对多这样的关系:
@Entity
public class Plan {
@OneToMany(mappedBy = "Plan")
private List<Activity> activities;
}
@Entity
public class Activity {
@ManyToOne
@JoinColumn(name= "PLAN_ID")
private Plan plan;
}
Run Code Online (Sandbox Code Playgroud)
我需要将它们转换为 DTO 以发送到表示层。所以我有一个汇编器类来简单地将域对象转换为 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
}
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,PlanAssembler我需要遍历所有活动,并将其转换ActivityDTO,但麻烦的是,在ActivityAssembler我还需要PlanDTO构建ActivityDTO。这将是一个无限循环。我该如何解决这个问题?
请帮忙。
它不会是无限循环,因为您必须使用在循环之前刚刚创建的 PlanDTO 对象结果。请参阅下面的代码。
注意:我仍然建议选择一个可以为您完成这些工作的框架。
public class PlanAssembler {
public static PlanDTO makeDTO(Plan p) {
PlanDTO result = new PlanDTO();
result.setProperty(p.getProperty);
...
for (Activity a: p.getActivity()) {
ActivityDTO activityDTO = new ActivityDTO();
// Here I need to iterate over each activity to convert it to DTO
// But in ActivityAssembler, I also need PlanDTO
//Code to convert Activity to ActivityDTO.
activityDTO.setPlan(result);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7896 次 |
| 最近记录: |