这里介绍Hibernate集合类型的延迟加载特性,在Hibernate中提供了对实体对象的延迟加载以及对集合的延迟加载,另外在Hibernate3中还提供了对属性的延迟加载。

本文向咱们介绍Hibernate调集类型,或许好多人还不了解Hibernate调集类型,没有关系,看完本文你必定有不少收成,期望本文能教会你更多东西。

Hibernate调集类型的推迟加载特性(hibernate 延迟加载)  Hibernate集合类型 延迟加载 第1张

推迟加载机制是为了防止一些无谓的功能开支而提出来的,所谓推迟加载便是当在真实需求数据的时分,才真实履行数据加载操作。在Hibernate中供给了对实体目标的推迟加载以及对调集的推迟加载,另外在Hibernate3中还供给了对特点的推迟加载。下面咱们就别离介绍这些品种的推迟加载的细节。

Hibernate调集类型的推迟加载

在Hibernate的推迟加载机制中,针对调集类型的运用,含义是最为严重的,由于这有或许使功能得到大幅度的进步,为此Hibernate进行了很多的尽力,其间包含对JDK Collection的独立完成,咱们在一对多相关中,界说的用来包容相关目标的Set调集,并不是java.util.Set类型或其子类型,而是net.sf.hibernate.collection.Set类型,经过运用自界说调集类的完成,Hibernate完成了调集类型的推迟加载。为了对Hibernate调集类型运用推迟加载,咱们有必要如下装备咱们的实体类的关于相关的部分:

  1. <hibernate-mapping>
  2. <classname=”com.neusoft.entity.User”table=”user”>
  3. <setname=”addresses”table=”address”lazy=”true”inverse=”true”>
  4. <keycolumn=”user_id”/>
  5. <one-to-manyclass=”com.neusoft.entity.Arrderss”/>
  6. </set>
  7. </class>
  8. </hibernate-mapping>

经过将<set>元素的lazy特点设置为true来敞开Hibernate调集类型的推迟加载特性。咱们看下面的代码:

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

当程序履行到第二行时,这时并不会建议对相关数据的查询来加载相关数据,只要运转到第三行时,真实的数据读取操作才会开端,这时Hibernate会依据缓存中契合条件的数据索引,来查找契合条件的实体目标。

【修改引荐】

  1. 解说NHibernate Session
  2. 简略描绘Hibernate Sample
  3. Hibernate Annotations保护验证逻辑
  4. Hibernate ClassValidator实例
  5. 描绘Hibernate持久性类
转载请说明出处
知优网 » Hibernate调集类型的推迟加载特性(hibernate 延迟加载)

发表评论

您需要后才能发表评论