3
我發現了這個HQL查詢,我試圖理解它。評論說,LEFT JOIN
會導致Hibernate急切地加載子表中的關聯實體,並且需要使用DISTINCT
修飾符來過濾掉結果集中的重複父實體。這些評論有意義嗎?我還沒有看到過使用這種方式的聯接。Hibernate HQL:使用JOIN來急切加載子實體?
SELECT DISTINCT p FROM Parent AS p
LEFT JOIN p.children AS c
WHERE p.state = 1
ORDER BY p.modified
注意c
沒有在WHERE
或ORDER BY
子句中使用。
現在看來,這將是安全與簡單的更換此查詢:
SELECT p FROM Parent AS p
WHERE p.state = 1
ORDER BY p.modified
但我不知道是否有很好的理由原始查詢被寫成是。