簡體   English   中英

HQL,左連接在同一個表上

[英]HQL, left join on the same table

我搜索一種方法與hql使用相同的表進行左連接。

這是我的疑問

  FROM Tvshow e
  LEFT JOIN Tvshow e1 ON e1.num = e.num
 WHERE e1.code = '024'
   AND e.code is not null
   AND e.code != '024'

Hibernate似乎不喜歡運營商。

只有在兩個實體之間存在關聯時,才能在HQL中進行左連接。 由於您的查詢將聯接實體強制為非null,因此內部聯接將執行相同的操作。 只有在兩個實體之間存在關聯時,才可以使用連接語法進行內連接。 但是你可以通過在where子句中添加相等性測試來實現:

select e from Tvshow e, Tvshow e1
where e.num = e1.num
and e1.code = '024'
and e.code is not null
and e.code != '024'

我不使用hibernate但是,通過這個例子來判斷:

from Cat as cat
inner join cat.mate as mate
left outer join cat.kittens as kitten

從這個頁面: http//docs.jboss.org/hibernate/orm/3.3/reference/en/html/queryhql.html#queryhql-joins-forms

看起來你只是不做ON? 讓我知道如果我弄錯了,我會把它拿下來。

FROM Tvshow e
  LEFT JOIN Tvshow e1 
 WHERE e1.code = '024'
   AND e.code is not null
   AND e.code != '024'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM