0
比方說,我有如下表:Hibernate的命名查詢外連接
TABLE1:
ID number
NAME varchar
TABLE2:
ID number (foreign key from first table)
KEY varchar
VALUE varchar
表2可以對錶1中的元素的記錄,但並非總是如此。
我需要一個命名查詢,將獲得由表1中的所有ID和,如果有的話,對錶2或空值的特定鍵的相關信息,如果有表2中沒有記錄,這樣的事情:
select Table1.Id, Table1.Name, Table2.Value
from Table1
left Join Table1.Table2
where Table1.Id in (?)
and Table2.key = 'someKey'
但是,如果Table2具有表1中的記錄的數據,則此查詢只會帶來結果。
我已經Table 1和表2之間的關係設置成一樣的東西:
<map name="Table2" table="Table2" cascade="all-delete-orphan" inverse="true" lazy="true" batch-size="20">
<cache usage="nonstrict-read-write"/>
<key column="ID"/>
<index column="KEY" type="string"/>
<one-to-many class="somePersistentClass"/>
</map>
如何建立一個查詢,會做什麼,我需要?對於DB2這裏是爲了什麼,我需要一個工作查詢:
select Table1.Id, Table1.name, Table2.Value
from Table1
left Join Table2 on Table1.id = Table2.id and Table2.key = 'someKey'
and Table1.Id in (....)
但是,我無法找到一種方式,命名查詢使外連接,所以我得到空值時,我有表2中沒有結果,假定除了連接的ID之外,我需要通過KEY過濾Table2。