當應用程序需要在關聯關系間進行導航的時候, Hibernate如何獲取關聯對象的策略,它是對Hibernate性能的一種優化策略。
Hibernate中定義了幾種抓取策略:
1.連接抓取(Join fetching)
Hibernate通過在SELECT語句使用OUTER JOIN(外連接)來獲得對象的關聯實例或者關聯集合。
2.查詢抓取(Select fetching)
另外發送一條 SELECT 語句抓取當前對象的關聯實體或集合。除非你顯式的指定lazy="false"禁止延遲抓取,否則只有當你真正訪問關聯關系的時候,才會執行第二條select語句。
3.子查詢抓取(Subselect fetching)
另外發送一條SELECT 語句抓取在前面查詢到(或者抓取到)的所有實體對象的關聯集合。除非你顯式的指定lazy="false" 禁止延遲抓取,否則只有當你真正訪問關聯關系的時候,才會執行第二條select語句。
4.批量抓取(Batch fetching)
對查詢抓取的優化方案, 通過指定一個主鍵或外鍵列表,Hibernate使用單條SELECT語句獲取一批對象實例或集合。