`
京华倦客
  • 浏览: 125024 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Hibernate 延迟加载,但有时候要直接加载集合,就要通过手动加载的方法

 
阅读更多

 public static Object getForInitSet(String className, java.io.Serializable id) {
  Session s = BaseDB.getSession();
  Object obj = null;
  try {
   s.beginTransaction();
   obj = s.get(className, id);
   Field[] fields=obj.getClass().getDeclaredFields();//getFields();
   for (int i = 0; i < fields.length; i++) {
    try {
     fields[i].getType().asSubclass(Collection.class);
//    if("Set".equalsIgnoreCase(fields[i].getType().getSimpleName())){
     Object temp=null;
     try {
      temp = PropertyUtils.getProperty(obj, fields[i]
        .getName());
     } catch (Exception e) {
     }
     if (temp != null && !Hibernate.isInitialized(temp))
      try {
       Hibernate.initialize(temp);
      } catch (HibernateException e) {
       System.out.println(fields[i].getName()
         + " is ill in " + obj.getClass().getName());
      }
//    }
    } catch (ClassCastException e1) {
    }
   }
   s.getTransaction().commit();
  } catch (HibernateException e) {
   e.printStackTrace();
  } catch (SecurityException e) {
   e.printStackTrace();
  }  finally {
      if (s != null)
        s.close();
    }
  return obj;
 }

分享到:
评论

相关推荐

    Hibernate延迟加载

    Hibernate延迟加载是ORM框架Hibernate中的一个重要特性,它旨在提高应用程序的性能和效率。延迟加载(Lazy Loading)策略允许我们仅在需要访问一个对象或其属性时才从数据库加载它们,而不是在初始加载实体时就一次...

    Flex 与 Hibernate 的延迟加载问题

    本文将深入探讨几种解决Flex与Hibernate延迟加载问题的方法,并着重讲解使用Gilead的方案。 1. **LCDS的Hibernate Adapter**:Adobe LiveCycle Data Services (LCDS) 提供了一个Hibernate适配器,可以处理延迟加载...

    hibernate延迟机制分析

    当一个实体的某个属性是一个关联的集合,如一对多的关系,Hibernate默认会采用延迟加载机制。这意味着在初始加载实体时,并不会立即查询关联的集合,而是在第一次尝试访问这个集合时才发起SQL查询。这种设计可以避免...

    Hibernate方法总结

    不确定时,或者需要延迟加载时,可以使用`load`。 B. `find` 和 `iterate`: 这两个方法都用于执行HQL(Hibernate Query Language)查询。`find`返回一个List集合,一次性将所有结果加载到内存,适合于小规模数据的...

    gilead hibernate lazyload例子

    为了优化用户体验,可以考虑在初始加载时仅获取必要的用户基本信息,而延迟加载`Address`直到用户有明确的需求。 在Gilead的使用过程中,由于其库文件大小的问题,我们可以采取以下策略: 1. 使用第三方库管理工具...

    hibernate讲义

    - Hibernate 支持 List、Set、Map 等多种集合类型映射,通过 @OneToMany 和 @ManyToMany 注解配置关联表和中间表。 9. **延迟加载与立即加载** - 延迟加载(Lazy Loading)在需要时才加载关联对象,节省资源。 -...

    hibernate5常用的jar包集合(连接mysql)

    11. **懒加载和级联操作**:Hibernate的懒加载机制可延迟加载关联的对象,直到真正需要时才从数据库获取。级联操作允许一次操作影响多个关联的实体。 12. **缓存机制**:Hibernate提供了一级缓存(Session级别的)...

    hibernate性能优化方案

    2. **集合延迟加载**:通过实现自定义的集合类,如LazyLoadCollection,实现集合的延迟加载。 3. **属性延迟加载**:为实体中的某些字段配置懒加载,减少不必要的数据加载。 #### 八、事务控制策略 合理的事务管理...

    hibernate 调优

    2. **集合延迟加载**:通过实现自定义的 SET/LIST 类型,Hibernate 提供了集合级别的延迟加载支持。 3. **属性延迟加载**:只加载实体的主键等基本信息,当需要其他属性时才发起查询。 #### 七、方法选用 1. **...

    Hibernate电子书(全)

    延迟加载是一种优化技术,允许Hibernate在真正需要的时候才加载关联的对象,从而减少了不必要的数据库访问,提高了应用程序的性能。 #### Session管理 在Hibernate中,所有的数据操作都需要在一个Session的上下文中...

    hibernate3.3 api中文

    Session的openCriteria()和createQuery()方法可以用来执行HQL(Hibernate Query Language)或 Criteria 查询,这是Hibernate提供的两种强大的查询方式,比直接写SQL更灵活,更易于理解和维护。 Transaction接口用于...

    传智播客_hibernate

    1. **延迟加载(Lazy Loading)**: 只在真正需要时加载关联对象,减少内存占用。 2. **批处理**: 批量处理插入、更新、删除操作,提高效率。 3. **集合分页**: 使用Query的setFirstResult()和setMaxResults()方法...

    hibernate的文档最全版

    9. **延迟加载(Lazy Loading)**:Hibernate的懒加载机制可以优化性能,只有在真正需要关联对象时才会执行数据库查询。 10. **实体状态**:Hibernate区分了瞬态(Transient)、持久化(Persistent)和游离...

    hibernate中文参考文档pdf

    13. **性能优化**:提供了一些最佳实践和技巧,如批处理、延迟加载、缓存配置等,以提高Hibernate应用的性能。 14. **Hibernate与JPA**:比较Hibernate与Java Persistence API(JPA)的关系,以及如何在JPA规范下...

    Spring MVC + hibernate 集合

    6. **懒加载和即时加载**: Hibernate 支持懒加载(延迟加载)和即时加载策略,优化性能。 三、Spring MVC 和 Hibernate 集成 1. **配置 Spring 和 Hibernate**: 在 Spring 配置文件中引入 Hibernate 相关配置,如...

    hibernate配置要点详谈

    - 如果采用了延迟加载机制但希望在某些情况下实现非延迟加载,可以通过`Hibernate.initialize()`方法强制加载关联对象。 #### 十一、对象持久化操作 - 对于`save`操作,如果对象已经与`Session`关联,则无需额外...

    Hibernate中文学习资料

    为了提升性能,开发者可以考虑使用批处理操作、缓存策略、延迟加载、预加载、连接池等技术。 通过阅读《Hibernate3中文参考手册》,你可以全面了解Hibernate的基本概念和使用方法,进一步提升Java应用程序的数据库...

    Spring+Hibernate+Struts工作原理

    Hibernate的延迟加载(Lazy Loading)特性是其一大亮点,它可以减少内存占用,提高性能。例如,当获取一个实体对象时,与其关联的集合默认不会立即加载,而是在第一次访问时才加载,这就是延迟加载。 类之间的关系...

    hibernate中文文档 HTML格式

    1. 支持延迟加载(Lazy Loading):只有在真正需要时才加载关联的对象,提高性能。 2. 集合映射:如List、Set、Map等集合类型的映射。 3. 异步操作:通过使用Hibernate的异步API,可以在后台线程中执行数据库操作,...

Global site tag (gtag.js) - Google Analytics