Hibernate 4.2左连接获取迁移问题

Hibernate 4.2左连接获取迁移问题,hibernate,hql,left-join,fetch,Hibernate,Hql,Left Join,Fetch,我目前正在从Hibernate3迁移到4。我设法对依赖项进行了排序,但我面临着一个流行的问题:org.hibernate.QueryException:query指定的联接获取,但获取的关联的所有者不在选择列表中…问题。为了强制Hibernate获取整个对象及其集合属性(即具有多个部门的员工和每个部门的地址),我通常会执行以下操作 因此,在HQL中,我有如下内容: select e from Employee as e left join fetch e.department left join

我目前正在从Hibernate3迁移到4。我设法对依赖项进行了排序,但我面临着一个流行的问题:
org.hibernate.QueryException:query指定的联接获取,但获取的关联的所有者不在选择列表中…
问题。为了强制Hibernate获取整个对象及其集合属性(即具有多个部门的员工和每个部门的地址),我通常会执行以下操作

因此,在HQL中,我有如下内容:

select e from Employee as e left join fetch e.department left join fetch e.department.address where e.id= ....

这很好,但在新版本的Hibernate中,我只能获取直接属于employee对象而不是department的属性。我想要的是获取所有属性,因为在查询之后会话将关闭,而延迟获取显然会引发异常。

我找到了所需的内容,我在这里发布给其他有相同问题的人

查询应为:

select e from Employee as e left join fetch e.department as department left join fetch department.address where e.id=...
我们必须使用别名
部门