HQL自定义On子句

时间:2015-04-06 17:58:32

标签: 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 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中编写第一个查询?

1 个答案:

答案 0 :(得分:0)

想出来,hql有一个with关键字。所以这可以通过以下方式完成:

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