我搜索一種方式來做與hql相同的表的左連接。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'
休眠似乎並不喜歡的運營商。
我搜索一種方式來做與hql相同的表的左連接。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'
休眠似乎並不喜歡的運營商。
我不使用休眠,但是通過這個例子來看:
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'
只有在兩個實體之間存在關聯時,HQL中的左連接纔有可能。由於您的查詢將聯接的實體強制爲非空,所以內部聯接會執行相同的操作。只有在兩個實體之間存在關聯的情況下,也可以使用連接語法進行內部連接。但是你可以通過簡單地在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'
使用內部連接語法,行'和e.code不爲空'是不必要的。 – 2016-03-09 03:03:26
刪除選擇,我的錯誤,但錯誤是相同 – 2012-07-31 13:48:40
我要修改我的回答。我不使用休眠,但我正在查看語法。 – Aushin 2012-07-31 13:51:03
@roberttrudel讓我知道,如果這有幫助。我從來沒有使用HQL,所以我試圖從文檔中猜測。 – Aushin 2012-07-31 13:54:32