一、類級別查詢
get方法:沒有任何策略,呼叫即立即查詢資料庫載入資料。
load方法:應用類級別的載入策略
lazy(預設值):true,查詢類時,會返回**物件,會在使用屬性時,根據關聯的session查詢資料庫,載入資料
lazy:false. load方法會與get方法沒有任何區別,呼叫時即載入資料
結論:為了提高效率,建議使用延遲載入(懶載入)
注意:使用懶載入時要確保,呼叫屬性載入資料時,session還是開啟的,不然會丟擲異常
二、關聯級別查詢
1、集合策略
lazy屬性: 決定是否延遲載入
true(預設值): 延遲載入,懶載入
false: 立即載入
extra: 極其懶惰
fetch屬性: 決定載入策略.使用什麼型別的sql語句載入集合資料
select(預設值): 單錶查詢載入
join: 使用多表查詢載入集合
subselect:使用子查詢載入集合
2、關聯屬性策略
fetch 決定載入的sql語句
select: 使用單錶查詢
join : 多表查詢
lazy 決定載入時機
false: 立即載入
proxy: 由customer的類級別載入策略決定.
結論:為了提高效率,fetch的選擇上應選擇select, lazy的取值應選擇true, 全部使用預設值
no-session問題解決:擴大session的作用範圍
三、批量抓取
hibernate 查詢優化
1.延遲載入先獲取到 物件,當真正使用到該物件中的屬性的時候,才會傳送sql語句,是hibernate框架提公升效能的方式 2.類級別的延遲載入 session物件的load方法預設就是延遲載入 customer c session.load customer.class,1l 沒有傳送sql語句,...
Hibernate框架 批量查詢
hql查詢 hibernate query language 多表查詢,但不複雜時使用 hibernate獨家查詢語言,屬於物件導向的查詢語言 1 基本查詢 基本查詢 public void fun1 2 條件查詢 2.1 直接查詢 條件查詢 hql語句中,不可能出現任何資料庫相關的資訊的 publ...
Hibernate 框架的查詢方式
query 查詢介面 1.具體的查詢 如下 1.查詢所有記錄 query query session.createquery from customer listlist query.list system.out.println list 2.條件查詢 query query session.cr...