Hibernate HQL多表选择-外部联接?

Hibernate HQL多表选择-外部联接?,hibernate,grails,hql,outer-join,Hibernate,Grails,Hql,Outer Join,我正在尝试执行一个HQL查询,该查询组合了两个对象的数据:Person,和personroleasociation 我正在运行Hibernate4.3.10和Grails3.0.10 我当前的查询如下所示: SELECT person FROM Person person, PersonRoleAssociation personRoleAssoc WHERE personRoleAssoc.person = person 据我所知,这相当于标准的SQL左内联接。这适用

我正在尝试执行一个
HQL
查询,该查询组合了两个对象的数据:
Person
,和
personroleasociation

我正在运行
Hibernate
4.3.10和
Grails
3.0.10

我当前的查询如下所示:

SELECT person 
  FROM Person person, 
       PersonRoleAssociation personRoleAssoc
 WHERE personRoleAssoc.person = person
据我所知,这相当于标准的
SQL
左内联接。这适用于大多数情况,但我还需要查询所有缺少
PersonRoleAssociation
人员,因为上面的查询是左连接,所以我遇到了问题

在标准的
SQL
中,我只会使用左外连接,但是我找不到任何与
HQL
等价的连接


在不改变对象结构的情况下,如何在
HQL
中执行与外部联接等效的操作

如果您不能在Person侧添加OneToMany并使用标准的左外连接,那么我认为您应该选择右连接。比如:

SELECT p 
  FROM PersonRoleAssociation personRoleAssoc
    RIGHT OUTER JOIN personRoleAssoc.person p       
 WHERE /* other criteria */

如果你不能在人物侧添加一个OneToMany并使用标准的左外连接,那么我认为你应该选择右连接。比如:

SELECT p 
  FROM PersonRoleAssociation personRoleAssoc
    RIGHT OUTER JOIN personRoleAssoc.person p       
 WHERE /* other criteria */

您是否将PersonRoleAssociation映射为Person实体中的OneToMany关系?@MaciejKowalski否,我听说Grails中的OneToMany关系可能会非常缓慢,因此我尝试避免它。您是否将PersonRoleAssociation映射为Person实体中的OneToMany关系?@MaciejKowalski否,我听说在Grails中拥有一对夫妻的关系可能会很慢,所以我试着避免它。没问题。很高兴我能帮上忙,没问题。很高兴我能帮忙