假使現在有兩張關聯表
下面我們研究下在各種連接方式下的查詢的策略及結果
第一
hql
說明
執行的sql
查詢結果為
Id
Name
Age
Tom
Tom
結果
第二
hql
說明
執行的sql
From CUSTOMER c left out join ORDER o onc
查詢結果為
C_ID
NAME
AGE
O_ID
O_NUMBER
CUSToMER_ID
tom
Tom_order
tom
Tom_order
tom
Tom_order
tom
null
null
null
結果
(注
第三
hql: from Customer c left join c
說明
執行的sql
查詢結果為
C_ID
NAME
AGE
O_ID
ORDER_NUMER
CUSTOMER_ID
Tom
Tom_order
Tom
Tom_order
Tom
Tom_order
Tom
null
null
null
第四
hql: from Customer c inner join c
執行的sql語句
查詢結果為
C_ID
NAME
AGE
O_ID
ORDER_NUMBER
CUSTOMER_ID
Tom
Tom_order
Tom
Tom_order
Tom
Tom_order
第五
hql
執行的sql
查詢結果為
C_ID
NAME
AGE
O_ID
ORDER_NUMBER
CUSTOMER_ID
Tom
Tom_order
Tom
Tom_order
Tom
Tom_order
第六
Hql
執行的sql
查詢結果為
C_ID
NAME
AGE
O_ID
ORDER_NUMBER
CUSTOMER_ID
Tom
Tom_order
Tom
Tom_order
Tom
Tom_order
總結則為下表所示
連接方式
對應的sql查詢
Orders集合的檢索策略
查詢結果的內容
無連接
查詢單個customer表
延遲檢索策略
集合包含customer的元素
迫切左外連接
左外連接查詢customer和order
迫切左外連接檢索策略
集合中包含customer的元素
左外連接
左外連接查詢customer和order
延遲檢索策略
集合中包含對象數據類型的元素
內連接
內連接查詢customer表和order表
延遲檢索策略
集合中包含對象數據類型的元素
迫切內連接
內連接查詢customer和order
迫切內鏈接檢索策略
集合中包含customer類型的元素
右外鏈接
右外鏈接查詢customer表和order
延遲檢索策略
集合中包含對象數組類型的元素
From:http://tw.wingwit.com/Article/program/Java/ky/201311/28043.html