檢索策略 lasy、fetch
檢索:就是把數據庫的數據加載到內存的過程。
檢索策略的方式:
1.立即檢索(立即加載)
2.延遲檢索(延遲加載)
檢索策略的應用:
1.類級別上的應用 (get方法和load方法)
Get方法 vs load方法區別:
1.get方法在檢索數據的時候,不管class元素是否lasy設置爲true還是fale,都是立即檢索
2.Laod方法在檢索數據的時候,class元素lasy設置成true,延遲檢索,並且產生的對象類型是一個代理類型,如果class元素lasy設置成false,立即檢索,產生對象類型是一個普通po類型對象
3.、get方法和load都是類級別上的檢索的應用方式
4.對應類級別上的檢索,一般就定爲立即加載方式
2.集合級別上的應用
在檢查某個對象的時候,如果該對象有關聯的數據,可以決定是否延遲或者立即加載關聯的數據
Lasy(是否懶加載) |
Fetch(生成sql語句樣子) |
結果 |
false |
Select(默認就是select) |
同時查詢主表和關聯表數據 |
true |
select |
先查詢主表信息,都是在使用集合的時候,才發出去sql查詢關聯表信息 |
true |
join |
在查詢主表的時候,發出連接sql語句,lasy無效 |
false |
join |
|
true |
subselect |
先查主表,在使用集合的時候才發出sql語句去查詢相關數據 |
false |
subselect |
先查主表,然後把主表的id作爲子查詢條件去查詢關聯表 |