2011-05-03 132 views
-1

我有以下查詢休眠HQL左的連接

select x.a, x.b, y.a, y.b 
from x, y 
where y.xid = x.id 

我怎麼執行左鍵點擊這裏加入。

我不能使用下面的風格,所以請不要提出以下建議。

select x.a, x.b, y.a, y.b 
from x left join x.y as y 
+0

什麼也正是這個問題?爲什麼不能使用'left join'語法? – axtavt 2011-05-03 11:34:08

+0

我更新了hql。 x沒有對y的引用,但y有一個引用x的屬性。我無法從x導航到y。 – user373201 2011-05-03 11:43:39

+0

你能向我們展示一下你的映射嗎? x和y之間的關係究竟是什麼? – 2011-05-03 12:00:30

回答

1

當你沒有xy之間的關係,你不能表達外HQL中它們之間的連接。

因此,您必須創建一個關係或使用帶有左連接的native SQL query

如果yx的關係,你可以重寫左聯接爲右連接:

select ... from y y right join y.x x 
+0

如果y與x具有多對一的單向關係,則外連接將起作用。如何在這種情況下hql。 – user373201 2011-05-03 17:09:44

+0

@ user373201:是的,請參閱更新。 – axtavt 2011-05-03 17:13:58

+0

感謝您的快速回復,我會試一試 – user373201 2011-05-03 17:15:56