У меня есть эти отношения, где у меня есть кампания, связанная с Campaign_planning с использованием отношения @onetomany, как это: < /p>
@Table(name = "campaign")
public class Campaign implements Serializable {
@Id @Column(name = "id", nullable = false)
private UUID id;
@ManyToOne(cascade = {CascadeType.REFRESH})
@JoinColumn(name = "parent_id", updatable = false)
private Campaign parent;
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "parent", orphanRemoval = true)
@OrderBy("createTime")
private List campaigns;
@OneToOne(mappedBy = "campaign", cascade = CascadeType.ALL, orphanRemoval = true)
@PrimaryKeyJoinColumn
private ScheduleInfo scheduleInfo;
@OneToMany(mappedBy = "superCampaign", fetch = FetchType.LAZY)
private List campaignPlanning;
}
@Table(name = "campaign_planning")
public class CampaignPlanning implements Serializable {
@Id
private UUID id;
@OneToOne
@JoinColumn(name = "campaign_id", insertable = false, updatable = false)
@NotFound(action = NotFoundAction.IGNORE)
private Campaign campaign;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "super_campaign_id", insertable = false, updatable = false)
private Campaign superCampaign;
}
< /code>
Но когда мы запускаем приложение и пытаемся получить camental_planinng, даже я установил fetch = fetchtype.lazy на кампании_планенг, он все еще включен в мой запрос. < /p>
Что может быть здесь проблемой?select
campaignpl0_.*,
campaign1_.*,
campaign2_.*,
schedulein3_.*,
from
campaign_planning campaignpl0_
left outer join campaign campaign1_ on campaignpl0_.campaign_id = campaign1_.id
left outer join campaign campaign2_ on campaign1_.parent_id = campaign2_.id
left outer join schedule_info schedulein3_ on campaign2_.id = schedulein3_.campaign_id
where
campaignpl0_.super_campaign_id = ?
Подробнее здесь: https://stackoverflow.com/questions/795 ... unexpected