我正在尝试在一个查询中从 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”语句吗?如果是这样,你如何做到这一点?
提前致谢!
最佳答案
No你不能(根据规范)。
请注意,Hibernate 支持它。
关于spring - JPQL 中的多个 LEFT JOIN FETCH,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14560865/