NHibernate延遲載入

2022-03-14 15:22:51 字數 801 閱讀 3086

1.和ef不同,nh的延遲載入不僅可以使用於關係而且可以使用於普通字段,用於在載入大資料時改進系統效能

2.預設情況下,hibernate對於字段(屬性)的載入不使用延遲,對於關係的載入使用延遲

3.實現延遲載入

3.1 在xml中配置

<

property

name

="partname" lazy

="true" column

="partname">

property

>

使用這種方法設定可以改變hibernate對某些的字段或關係的載入策略,但是這種載入策略會在整個工程中一直沿用

3.2 查詢過程中指定載入策略

3.2.1使用criteria進行查詢時可以使用

nhibernateutil.initialize(object);
使用這種方法進行貪婪載入時,需要顯示指定貪婪載入的例項,如nhibernateutil.initialize(user.part);
這樣在迴圈過程中仍會產生n+1的問題
3.2.2使用hql進行查詢時
return session.createquery(@" from user as user 

join fetch user.part").list();

使用fetch可以在進行join的同時將指定物件的非延遲載入項載入到快取中

懶載入 延遲載入

概念 為了推遲和資料庫互動的時間,推遲到真正需要這個物件資料的時候。提高系統的效能 通過 asm和cglib二個jar包實現懶載入。domain是非final的 1 session.load懶載入 1 返回的是乙個 物件,new關鍵字來建立乙個 物件,理解成乙個快捷方式,不是真正的類,而是 類。2 ...

同步載入 非同步載入 延遲載入

一 同步載入 平常預設用的都是同步載入。如 同步模式又稱阻塞模式,會阻止瀏覽器的後續處理,停止了後續的檔案的解析,執行,如影象的渲染。流覽器之所以會採用同步模式,是因為載入的js檔案中有對dom的操作,重定向,輸出document等預設行為,所以同步才是最安全的。通常會把要載入的js放到body結束...

延遲載入D L L

延遲載入d l l amoon100 2005 10 16 microsoft visual c 6.0提供了乙個出色的新特性,它能夠使dll的操作變得更加容易。這個特性稱為延遲載入dll。延遲載入的dll是個隱含鏈結的dll,它實際上要等到你的 試圖引用dll中包含的乙個符號時才進行載入。延遲載入...