Mysql HQL自定义On子句

Mysql HQL自定义On子句,mysql,hibernate,Mysql,Hibernate,我希望能够在hql中对以下内容进行建模: select people0_.NameFirst as col_1_0_, people0_.NameLast as col_2_0_, link1_.LinkValue as col_4_0_ from people people0_ left outer join peoplelinks peoplelink1_ on (people0_.PersonID=link1_.PersonID an

我希望能够在hql中对以下内容进行建模:

select
    people0_.NameFirst as col_1_0_,
    people0_.NameLast as col_2_0_,
    link1_.LinkValue as col_4_0_
from
    people people0_
left outer join
    peoplelinks peoplelink1_
        on (people0_.PersonID=link1_.PersonID and link1_.LinkTypeID=1)
;
这是一个更大的sql查询的一部分,我只想返回所有人,不管他们是否有链接类型为1的人与他们关联。这个人可能有一个与他们相关的不同类型的链接,这就是为什么我不能简单地这样做

select
    people0_.NameFirst as col_1_0_,
    people0_.NameLast as col_2_0_,
    link1_.LinkValue as col_4_0_
from
    people people0_
left outer join
    peoplelinks peoplelink1_
        on people0_.PersonID=link1_.PersonID
 where
  link1_.LinkTypeID=1
;

有没有办法在hibernate中编写第一个查询?

弄明白了,hql有一个with关键字。因此,这可以通过以下方式完成:

left outer join p.links l with l.linktypes.linkTypeId = :link_type_variable