`
withyou
  • 浏览: 449446 次
社区版块
存档分类
最新评论

hibernate的column级lazy

阅读更多
1. Using lazy property fetching
To enable lazy property loading, set the lazy attribute on your particular property mappings:
<class name="Document">
       
<id name="id">
        
<generator class="native"/>
    
</id>
    
<property name="name" not-null="true" length="50"/>
    
<property name="summary" not-null="true" length="200" lazy="true"/>
    
<property name="text" not-null="true" length="2000" lazy="true"/>
</class>

Lazy property loading requires buildtime bytecode instrumentation! If your persistent classes are not enhanced, Hibernate will silently ignore lazy property settings and fall back to immediate fetching.

For bytecode instrumentation, use the following Ant task:
<target name="instrument" depends="compile">
    
<taskdef name="instrument" classname="org.hibernate.tool.instrument.InstrumentTask">
        
<classpath path="${jar.path}"/>
        
<classpath path="${classes.dir}"/>
        
<classpath refid="lib.class.path"/>
    
</taskdef>

    
<instrument verbose="true">
        
<fileset dir="${testclasses.dir}/org/hibernate/auction/model">
            
<include name="*.class"/>
        
</fileset>
    
</instrument>
</target>

Please note that this is mostly a marketing feature, as in practice, optimizing row reads is much more important than optimization of column reads.

debug麻烦, 并没有测试

2. use hql

// use vo
String hql = "select new Foo(f.id, f.name) from Foo f";

// use map 
String hql = "select new map(f.id, f.name) from Foo f";

// use Object[]
String hql = "select f.id, f.name from Foo f";

// use list
String "select new list(f.id, f.name) from Foo f";
不支持嵌套的对象, 不爽, 如
String hql = "select new Foo(f.id, new Bar(f.bar.id, f.bar.name)) from Foo f";


以上两种方法在实际应用中都不是很理想, 但那种from Pojo的方式太浪费内存, 遇到blob字段更可怕, 有其他更好方法的请告知

water ye 2006-04-10 20:28 发表评论
分享到:
评论

相关推荐

    gilead hibernate lazyload例子

    这就是Hibernate懒加载(Lazy Load)机制的作用所在。懒加载是一种延迟加载策略,只在真正需要时才加载关联的数据,以减少内存消耗和提高响应速度。 Gilead,全称为Hibernate for Flex,是用于Flex和Hibernate之间...

    hibernate aip hibernate aip

    6. **缓存策略**:Hibernate提供了第一级缓存(Session级别的)和第二级缓存(SessionFactory级别的)。合理利用缓存能提高性能,但需注意缓存一致性问题。 7. **性能优化**:包括延迟加载(Lazy Loading)、批处理...

    hibernate的jar包

    7. **第二级缓存**:Hibernate支持二级缓存,通过插件如Ehcache,可以在多个Session之间共享数据,提高性能。 8. **延迟加载(Lazy Loading)**:Hibernate支持懒加载机制,只有当真正需要访问关联对象时,才会发起...

    hibernate

    9. **第二级缓存**:Hibernate支持二级缓存,它可以提高数据访问性能,将经常访问的数据保存在内存中,减少对数据库的直接访问。 10. **一对多(One-to-Many)、多对一(Many-to-One)关系映射**:Hibernate支持...

    hibernate3.5.6开发包

    10. **性能优化**:包括延迟加载(lazy loading)、批处理(batch processing)、预加载(preloading)、连接池(connection pool)等技术,都是Hibernate性能优化的重要手段。 **标签:“Hibernate”** 在实际...

    hibernate源码release-4.1.4.Final版

    Hibernate支持一级缓存(Session级别的缓存)和二级缓存(SessionFactory级别的缓存)。一级缓存默认开启,提高性能但需注意并发问题;二级缓存可配置第三方缓存实现,如EhCache,用于跨Session的数据共享。 五、...

    HibernateDemo(hibernate基本用法演示)

    8. **缓存**:Hibernate 支持一级缓存(Session 缓存)和二级缓存,可以提高性能。可以通过配置决定是否启用和使用何种缓存策略。 9. **延迟加载(Lazy Loading)**:通过 `@OneToMany(mappedBy = "..." fetch = ...

    hibernate3.3 api中文

    Hibernate提供了一级缓存(Session级别的缓存)和二级缓存(SessionFactory级别的缓存),并支持第三方缓存服务如Ehcache。 总的来说,“hibernate3.3 api中文”文档详细阐述了Hibernate 3.3的各个方面,包括基本...

    hibernate3.4的jar包

    1. **注解驱动的持久化**:Hibernate 3.4引入了注解,使得开发者可以使用像@Entity、@Table、@Column等注解在Java类上直接声明持久化信息,简化了XML配置文件的使用。 2. **Java Persistence API (JPA)**:3.4版本...

    hibernate的延迟检索在轻量级J2EE框架中的应用

    ### Hibernate的延迟检索在轻量级J2EE框架中的应用 #### 1. 引言 随着互联网技术的发展,Web应用程序的需求日益增加,对于高效、快速的开发模式也提出了更高的要求。轻量级J2EE框架(Struts+Spring+Hibernate)因...

    传智播客hibernate源码

    13. **懒加载(Lazy Loading)**: Hibernate的延迟加载机制,只在真正需要时才加载关联对象,以提高性能。 14. **第二级缓存(Second Level Cache)**: 提升性能的机制,缓存已加载的数据,减少对数据库的访问。 ...

    Hibernate 中文开发者文档

    3. **缓存(Caching)**: Hibernate支持二级缓存,提高数据访问速度,如使用Ehcache或Infinispan。 4. **事务管理(Transaction Management)**: Hibernate支持JTA和JDBC两种事务管理方式。 5. **实体状态管理**: ...

    hibernate4 全部jar包

    Hibernate 4 是一个流行的Java持久化框架,用于简化数据库交互,尤其在企业级应用程序中广泛使用。SSH(Struts、Spring、Hibernate)是Java Web开发中的经典三层架构,其中Hibernate负责对象关系映射(ORM)。这个...

    hibernate入门简单实例

    13. **懒加载(Lazy Loading)**:Hibernate支持懒加载机制,即关联的对象在需要时才从数据库加载,这通过`@OneToMany`, `@ManyToOne`, `@OneToOne`等注解的`fetch = FetchType.LAZY`实现。 14. **缓存(Caching)*...

    Hibernate 转译中文版

    8. **延迟加载**(Lazy Loading):Hibernate允许对关联对象进行延迟加载,即只有在真正需要时才会加载,从而避免了不必要的数据库访问,提高了效率。 9. **事件监听器**:Hibernate允许自定义事件监听器,实现对...

    hibernate官网jar包

    11. **懒加载与立即加载**:Hibernate 提供了懒加载(Lazy Loading)和立即加载(Eager Loading)策略,以控制关联对象的加载时机,优化性能。 12. **级联操作**:通过`@Cascade`可以配置级联操作,如在删除父对象...

    hibernate.zip

    Hibernate内置了一级缓存(Session级别的)和二级缓存(SessionFactory级别的)。一级缓存默认开启,二级缓存可选,用于提高性能但需合理配置以避免数据不一致。 8. **关联映射**: Hibernate支持一对一、一对多...

    Hibernate4.1.11中文手册

    这个版本支持JPA2规范,提供了更灵活的配置选项,增强了对延迟加载(Lazy Loading)和级联操作的支持。 三、参考文档 参考文档详细介绍了Hibernate的核心概念和技术,包括配置、实体映射、会话管理、查询、缓存策略...

    Hibernate手册中文版

    - Hibernate提供了第一级缓存(Session级别的缓存)和第二级缓存(SessionFactory级别的缓存),提高数据读取效率。 - 可以集成第三方缓存系统,如Ehcache,实现分布式缓存。 8. **关联映射**: - 一对一...

    Hibernate3中文文档

    9. **缓存机制**:Hibernate提供了第一级缓存(Session级别的)和第二级缓存(SessionFactory级别的),通过缓存可以提高数据访问速度,减少数据库的负载。 10. **集合映射**:Hibernate支持多种集合类型(如List、...

Global site tag (gtag.js) - Google Analytics