我有以下查詢休眠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
我有以下查詢休眠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
當你沒有x
和y
之間的關係,你不能表達外HQL中它們之間的連接。
因此,您必須創建一個關係或使用帶有左連接的native SQL query。
如果y
有x
的關係,你可以重寫左聯接爲右連接:
select ... from y y right join y.x x
如果y與x具有多對一的單向關係,則外連接將起作用。如何在這種情況下hql。 – user373201 2011-05-03 17:09:44
@ user373201:是的,請參閱更新。 – axtavt 2011-05-03 17:13:58
感謝您的快速回復,我會試一試 – user373201 2011-05-03 17:15:56
什麼也正是這個問題?爲什麼不能使用'left join'語法? – axtavt 2011-05-03 11:34:08
我更新了hql。 x沒有對y的引用,但y有一個引用x的屬性。我無法從x導航到y。 – user373201 2011-05-03 11:43:39
你能向我們展示一下你的映射嗎? x和y之間的關係究竟是什麼? – 2011-05-03 12:00:30