NHibernate消極式載入

來源:互聯網
上載者:User

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<User>();

     使用fetch可以在進行join的同時將指定對象的非消極式載入項載入到緩衝中

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.