2012-03-14 36 views
0

我有一個鏈接到另一個表的外鍵字段,字段本身可爲空表。這意味着第一個表中的行可能在另一個表中可能有或沒有對應的行。當鏈接對象的FK可能爲空時,通過鏈接對象屬性進行排序?

爲了簡單起見,我們命名第一個表Foo和第二個Bar

現在,當我查詢從Foo行,並嘗試通過現場從Bar這樣對它們進行排序:

FROM Foo ORDER BY Bar.name 

結果從Foo只顯示這些值,其中外地bar_id不爲空。什麼是最好的方式還包括從Foo這些行,不具有相應的行Bar

目前,我有一個大馬虎方法從filterMap和sortMap取值,並將它們附加到產生的HQL查詢StringBuffer

我聽說過一些標準API,但不知道它是否能夠幫助我過去的這種情況。

回答

1

你只需要做一個左連接,而不是內部聯接:

select foo from Foo foo left join foo.bar bar order by bar.name 
相關問題