Hibernate集合类型的延迟加载特性
创始人
2024-06-08 06:20:31
0

本文向大家介绍Hibernate集合类型,可能好多人还不了解Hibernate集合类型,没有关系,看完本文你肯定有不少收获,希望本文能教会你更多东西。

延迟加载机制是为了避免一些无谓的性能开销而提出来的,所谓延迟加载就是当在真正需要数据的时候,才真正执行数据加载操作。在Hibernate中提供了对实体对象的延迟加载以及对集合的延迟加载,另外在Hibernate3中还提供了对属性的延迟加载。下面我们就分别介绍这些种类的延迟加载的细节。

Hibernate集合类型的延迟加载

在Hibernate的延迟加载机制中,针对集合类型的应用,意义是最为重大的,因为这有可能使性能得到大幅度的提高,为此Hibernate进行了大量的努力,其中包括对JDK Collection的独立实现,我们在一对多关联中,定义的用来容纳关联对象的Set集合,并不是java.util.Set类型或其子类型,而是net.sf.hibernate.collection.Set类型,通过使用自定义集合类的实现,Hibernate实现了集合类型的延迟加载。为了对Hibernate集合类型使用延迟加载,我们必须如下配置我们的实体类的关于关联的部分:

  1.  
  2.  name=”com.neusoft.entity.User” table=”user”> 
  3. …  
  4.  name=”addresses” table=”address” lazy=”true” inverse=”true”> 
  5.  column=”user_id”/> 
  6.  class=”com.neusoft.entity.Arrderss”/> 
  7.  
  8.  
  9.  

通过将元素的lazy属性设置为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());  

当程序执行到第二行时,这时并不会发起对关联数据的查询来加载关联数据,只有运行到第三行时,真正的数据读取操作才会开始,这时Hibernate会根据缓存中符合条件的数据索引,来查找符合条件的实体对象。

【编辑推荐】

  1. 讲解NHibernate Session
  2. 简单描述Hibernate Sample
  3. Hibernate Annotations维护验证逻辑
  4. Hibernate ClassValidator实例
  5. 描述Hibernate持久性类

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...