自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Hibernate集合類型的延遲加載特性

開發(fā) 后端
這里介紹Hibernate集合類型的延遲加載特性,在Hibernate中提供了對實體對象的延遲加載以及對集合的延遲加載,另外在Hibernate3中還提供了對屬性的延遲加載。

本文向大家介紹Hibernate集合類型,可能好多人還不了解Hibernate集合類型,沒有關(guān)系,看完本文你肯定有不少收獲,希望本文能教會你更多東西。

延遲加載機制是為了避免一些無謂的性能開銷而提出來的,所謂延遲加載就是當在真正需要數(shù)據(jù)的時候,才真正執(zhí)行數(shù)據(jù)加載操作。在Hibernate中提供了對實體對象的延遲加載以及對集合的延遲加載,另外在Hibernate3中還提供了對屬性的延遲加載。下面我們就分別介紹這些種類的延遲加載的細節(jié)。

Hibernate集合類型的延遲加載

在Hibernate的延遲加載機制中,針對集合類型的應(yīng)用,意義是最為重大的,因為這有可能使性能得到大幅度的提高,為此Hibernate進行了大量的努力,其中包括對JDK Collection的獨立實現(xiàn),我們在一對多關(guān)聯(lián)中,定義的用來容納關(guān)聯(lián)對象的Set集合,并不是java.util.Set類型或其子類型,而是net.sf.hibernate.collection.Set類型,通過使用自定義集合類的實現(xiàn),Hibernate實現(xiàn)了集合類型的延遲加載。為了對Hibernate集合類型使用延遲加載,我們必須如下配置我們的實體類的關(guān)于關(guān)聯(lián)的部分:

  1. <hibernate-mapping> 
  2. <class name=”com.neusoft.entity.User” table=”user”> 
  3. …  
  4. <set name=”addresses” table=”address” lazy=”true” inverse=”true”> 
  5. <key column=”user_id”/> 
  6. <one-to-many class=”com.neusoft.entity.Arrderss”/> 
  7. </set> 
  8. </class> 
  9. </hibernate-mapping> 

通過將<set>元素的lazy屬性設(shè)置為true來開啟Hibernate集合類型的延遲加載特性。我們看下面的代碼:

  1. User user=(User)session.load(User.class,”1”);  
  2. Collection addset=user.getAddresses();  
  3. Iterator it=addset.iterator();  
  4. while(it.hasNext()){  
  5. Address address=(Address)it.next();  
  6. System.out.println(address.getAddress());  

當程序執(zhí)行到第二行時,這時并不會發(fā)起對關(guān)聯(lián)數(shù)據(jù)的查詢來加載關(guān)聯(lián)數(shù)據(jù),只有運行到第三行時,真正的數(shù)據(jù)讀取操作才會開始,這時Hibernate會根據(jù)緩存中符合條件的數(shù)據(jù)索引,來查找符合條件的實體對象。

【編輯推薦】

  1. 講解NHibernate Session
  2. 簡單描述Hibernate Sample
  3. Hibernate Annotations維護驗證邏輯
  4. Hibernate ClassValidator實例
  5. 描述Hibernate持久性類
責任編輯:佚名 來源: InfoQ
相關(guān)推薦

2009-06-17 11:18:02

Hibernate延遲

2009-09-24 11:41:46

Hibernate延遲

2009-09-25 10:47:25

Hibernate延遲

2012-08-15 11:36:13

Hibernate

2009-09-28 09:56:53

Hibernate屬性

2009-09-25 10:17:21

Hibernate延遲

2009-07-02 09:39:37

Hibernate延遲

2011-11-24 21:03:10

ibmdw

2009-09-28 09:35:10

Hibernate實現(xiàn)實體對象延遲加載

2012-02-03 11:17:33

HibernateJava

2009-06-29 18:21:29

Hibernate

2009-09-25 09:04:27

Hibernate類型

2009-09-24 10:22:38

Hibernate3新

2023-06-29 07:48:35

異步加載JavaScript

2009-09-25 09:46:02

Hibernate高級

2009-09-25 08:49:22

Hibernate集合

2012-06-05 10:22:45

jQuery

2022-12-02 08:00:00

JavaScriptAstro前端

2021-05-08 09:49:07

JavaScript延遲加載

2009-07-02 09:38:17

Hibernate延時
點贊
收藏

51CTO技術(shù)棧公眾號