我试图在一个查询中从 3 个表中获取数据。我有“工作经验”、“技能”和“描述”。这个想法是,一个工作经验有多个与之相关的技能和多个描述。我正在尝试从一个特定的雇主那里查询所有工作经验(工作经验表有一个“EmployerId”列)。
我从获取描述开始,这很有效:
select distinct w from Workexperience w
left join fetch w.skills
where w.employer=(select e from Employer e where e.username = :username)
这给了我所有的工作经验和他们的技能,到目前为止一切都很好。当我尝试添加描述时,它变坏了:
select distinct w from Workexperience as w
left join fetch w.skills
left join fetch w.descriptions
where w.employer=(select e from Employer e where e.username = :username)
这给了我经典的延迟初始化异常。
所以我的问题是:你可以在一个查询中使用多个'left join fetch'语句吗?如果是这样,你如何做到这一点?
提前致谢!