hibernate懶載入策略
概念
lazy的概念就是只有在真正使用物件時,才會去建立。對hibernate而言,就是真正載入時才發出載入sql語句。 延遲載入機制是為了避免一些無謂的效能開銷而提出來的。
重點牢記
1.load支援延遲載入,get不支援延遲載入。
2.lazy的生命週期與session相同,lazy載入必須依賴於session一直開啟。
3.hibernate lazy屬性,在3.x後是預設開啟的,在以前版本中預設是關閉的。
4.hibernate通過cjlib實現**。
配置型別
class
true/false
只對普通屬性的延遲載入有效,不包括集合和其他類屬性。
property
true/false
需要類增強器來對實體類的class檔案進行強化處理。
在hibernate3中,引入了一種新的特性——屬性的延遲載入,這個機制又為獲取高效能查詢提供了有力的工具。比如它可以用於乙個複雜物件中某個屬性是乙個大文字,我們不想再載入這個物件時浪費太多時間,那麼我們就可以使用屬性推後載入。
集合
true/false/extra
如果設定為true,那麼就會在該集合被載入時發出sql語句。
如果設定為false,那麼在發出查詢普通屬性sql時就會隨後發出集合的查詢語句。
如果設定為extra,與設定為true類似,但相對智慧型,建議在實際工作中選用extra.
one-to-one,many-to-one[單端關聯]
proxy /false/noproxy
如果設定為proxy,那麼就會在類物件被載入時發出sql語句。
如果設定為false,那麼在發出查詢普通屬性sql時就會隨後發出類物件的查詢語句。
Hibernate懶載入策略
hibernate懶載入策略 概念 lazy的概念就是只有在真正使用物件時,才會去建立。對hibernate而言,就是真正載入時才發出載入sql語句。延遲載入機制是為了避免一些無謂的效能開銷而提出來的。重點牢記 1.load支援延遲載入,get不支援延遲載入。2.lazy的生命週期與session相...
hibernate的抓取策略和懶載入
hibernate的抓取策略指的是當應用程式需要在關聯關係間 表與表之間 進行導航的時候,hibernate如何獲取關聯物件的策略。抓取策略可以在o r對映的元資料中宣告 eg hbm.xml 也可以在特定的hql 或條件查詢 criteria query 中過載宣告。抓取策略 大的方面有兩類 se...
hibernate懶載入原理
懶載入的意思是查詢的時候不會立刻訪問資料庫,而返回的是 物件,當真正去使用物件欄位的時候才會訪問資料庫。load object,serializable 前提實體類不能是final的。根據id查詢 查詢返回的是 物件,不會立刻訪問資料庫,是懶載入的。當真正去使用物件的時候才會訪問資料庫。用load的...