2

我试图在一个查询中从 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'语句吗?如果是这样,你如何做到这一点?

提前致谢!

4

1 回答 1

3

,你不能(根据规范)。

请注意,尽管 Hibernate 支持它。

于 2013-02-05T14:15:55.900 回答