`

hibernate抓取策略

 
阅读更多

抓取策略:

    

    单端代理:

       hibernate抓取策略,单端代理的批量抓取

                   设置fetch=”select”,如

              <many-to-one name="classes" column="classesid" fetch="select"/>

       fetch="select",另外发送一条select语句加载当前对象的关联对象或集合

       设置fetch="join",如:

<many-to-one name="classes" column="classesid" fetch="join"/>

fetch="join",hibernate会通过一个select语句连接(内联,此时many-to-one设置为非空/外联)抓取其关联对象或集合

fetch="join",那么lazy失效

fetch="join",只影响get和load,对hql没有影响

为了防止n+1问题可以采用预先抓取的策略,如:

select s from Student s join fetch s.classes

fetch为select或join不影响hql,它影响的是load,get方法

      

    集合代理:

       保持默认,同fetch="select",如:

<set name="students" order-by="id" inverse="true" cascade="all" fetch="select">

fetch="select",另外发送一条select语句加载当前对象的关联对象或集合

设置fetch="join",如:

<set name="students" order-by="id" inverse="true" cascade="all" fetch="join">

                   fetch="join",hibernate会通过一个select语句连接(内联/外联)抓取其关联对象或集合

fetch="join",那么lazy失效

fetch="join",只影响get和load,对hql没有影响

设置fetch="subselect",如:

<set name="students" order-by="id" inverse="true" cascade="all" fetch="subselect">

fetch="subselect",另外发送一条select语句抓取在前面查询到的所有实体的关联集合

fetch="subselect",不影响get.load,会影响hql查询

    批量抓取:

    batch-size属性,可以批量加载实体类,参见Classes.hbm.xml

<class name="com.bjpowernode.hibernate.Classes" table="t_classes" batch-size="10">

或者查询时使用fetch:

       List students = session.createQuery("select s from Student s join fetch s.classes  where s.id in(:ids)")

       .setParameterList("ids", new Object[]{1, 11, 21, 31, 41, 51, 61, 71, 81, 91})

       .list();

batch-size属性,可以批量加载实体类,参见Classes.hbm.xml

<set name="students" order-by="id" inverse="true" cascade="all" batch-size="3">

分享到:
评论

相关推荐

    hibernate抓取策略和懒加载案例

    hibernate抓取策略和懒加载案例,供大家下载查看。大家都知道,hibernate都设计到一个优化问题。

    day36 06-Hibernate抓取策略:set集合上的抓取策略

    NULL 博文链接:https://364232252.iteye.com/blog/2368811

    day36 07-Hibernate抓取策略:many-to-one上的抓取策略

    NULL 博文链接:https://364232252.iteye.com/blog/2368886

    day36 08-Hibernate抓取策略:批量抓取

    NULL 博文链接:https://364232252.iteye.com/blog/2368890

    Hibernate学习笔记

    001 Hibernate 简介(开源 O/R 映射框架) 002 第一个 Hibernate 示例 003 hibernate 主要接口介绍 004 持久对象的生命周期介绍 005 query 接口初步 006 开源 O/R 映射框架内容回顾 ...029 hibernate 抓取策略

    hibernate学习笔记

    Hibernate 学习笔记 Hibernate 学习笔记 1 第一个hibernate项目(hibernate_first) 2 测试实体对象的生命周期(hibernate_session) 3 ...hibernate抓取策略 53 Hibernate最佳实践(Best Practices) 55

    hibernate3数据检索、抓取策略 、 注解的使用

    hibernate3数据检索、抓取策略 、 注解的使用

    Hibernate中的多表查询及抓取策略

    本文主要介绍了Hibernate中的多表查询及抓取策略,具有很好的参考价值,下面跟着小编一起来看下吧

    Hibernate框架 jar 架包 开发详解

    Hibernate 简介 Hibernate 开发流程 Hibernate 配置文件 Hibernate 核心接口和类 Hibernate ORM映射 HQL Hibernate 懒加载机制与抓取策略 Hibernate 缓存 Hibernate 锁机制

    Hibernate实战(第2版)高清

    你将直接深入到Hibernate的富编程模型之中,贯穿映射、查询、抓取策略、事务、会话、缓存以及更多其他内容。书中图文并茂地介绍了数据库设计和优化技术的实践。在本书中,作者详尽介绍了具有Java持久化2.1标准的...

    Hibernate+中文文档

    19.1.2. 调整抓取策略(Tuning fetch strategies) 19.1.3. 单端关联代理(Single-ended association proxies) 19.1.4. 实例化集合和代理(Initializing collections and proxies) 19.1.5. 使用批量抓取(Using...

    Hibernate3性能优化 Hibernate_regerence3.12

    有很多人认为Hibernate天生效率比较低,确实,在普遍情况下,需要将执行转换为SQL语句的 Hibernate 的效率低于直接JDBC存取,然而,在经过比较好...Hibernate的优化策略: 1.抓取优化 2.二级缓存 3.批量数据操作 4.杂项

    Hibernate3开发.pdf

    系统学习Hibernate3的开发知识,循序渐进 ... 包括:抓取策略、集合的性能、二级缓存、查询缓存、管理缓存 第七章:基本实现原理 包括:分增删改查的操作说明Hibernate基本的实现原理 第八章:最佳实践

    hibernate3.2中文文档(chm格式)

    19.1.2. 调整抓取策略(Tuning fetch strategies) 19.1.3. 单端关联代理(Single-ended association proxies) 19.1.4. 实例化集合和代理(Initializing collections and proxies) 19.1.5. 使用批量抓取(Using...

    HibernateAPI中文版.chm

    19.1.2. 调整抓取策略(Tuning fetch strategies) 19.1.3. 单端关联代理(Single-ended association proxies) 19.1.4. 实例化集合和代理(Initializing collections and proxies) 19.1.5. 使用批量抓取(Using...

    Hibernate实战(第2版 中文高清版)

     13.2 选择抓取策略   13.2.1 批量预抓取数据   13.2.2 通过子查询预抓取集合   13.2.3 通过联结即时抓取   13.2.4 给二级表优化抓取   13.2.5 优化指导方针   13.3 高速缓存基本原理   13.3.1 高速...

    Hibernate 中文 html 帮助文档

    19.1.2. 调整抓取策略(Tuning fetch strategies) 19.1.3. 单端关联代理(Single-ended association proxies) 19.1.4. 实例化集合和代理(Initializing collections and proxies) 19.1.5. 使用批量抓取(Using...

    Hibernate_day04.zip

    hibernte学习第四天代码,Hibernate的查询方式和抓取策略

Global site tag (gtag.js) - Google Analytics