Hibernate HQL ③
迫切左外連接:
- LEFT JOIN FETCH 關(guān)鍵字表示迫切左外連接檢索策略
- list()方法返回的集合中存放實(shí)體對(duì)象的引用,每個(gè) Department 對(duì)象關(guān)聯(lián)的 Employee 集合都被初始化,存放所有關(guān)聯(lián)的 Employee 的實(shí)體對(duì)象
- 查詢結(jié)果中可能會(huì)包含重復(fù)元素,可以通過一個(gè) HashSet 來過濾重復(fù)元素
左外連接:
- LEFT JOIN 關(guān)鍵字表示左外連接查詢
- list()方法返回的集合中存放的是對(duì)象數(shù)組類型
- 根據(jù)配置文件來決定 Employee 集合的檢索策略
- 如果希望 list()方法返回的集合中僅包含 Department 對(duì)象,可以在 HQL 查詢語(yǔ)句中使用 SELECT 關(guān)鍵字
迫切內(nèi)連接:
- INNER JOIN FETCH 關(guān)鍵字表示迫切內(nèi)連接,也可以省略 INNER 關(guān)鍵字
- list()方法返回的集合中存放 Department 對(duì)象的引用,每個(gè) Department 對(duì)象的 Employee 集合都被初始化,存放所有關(guān)聯(lián)的 Employee 對(duì)象
內(nèi)連接:
- INNER JOIN 關(guān)鍵字表示內(nèi)連接
- list()方法的集合中存放的每個(gè)元素對(duì)應(yīng)查詢結(jié)果的一條記錄,每個(gè)元素都是對(duì)象數(shù)組類型
- 如果希望 list()方法返回的集合僅包含 Department 對(duì)象,可以在 HQL 查詢語(yǔ)句中使用 SELECT 關(guān)鍵字
關(guān)聯(lián)級(jí)別運(yùn)行時(shí)的檢索策略:
- 如果在 HQL 中沒有顯式指定檢索策略,將使用映射文件配置的檢索策略
- HQL 會(huì)忽略配置文件中設(shè)置的迫切左外連接檢索策略,如果希望 HQL 采用迫切左外連接檢索策略,就必須在 HQL 查詢語(yǔ)句中顯式的指定它
- 若在 HQL 代碼中顯式的指定了檢索策略,就會(huì)覆蓋映射文件中配置的檢索策略

浙公網(wǎng)安備 33010602011771號(hào)