Hibernate框架学习(十)——查询优化
2018-02-23 14:39
267 查看
一、类级别查询
1、get方法:没有任何策略,调用即立即查询数据库加载数据。2、load方法:是在执行时不发送任何SQL语句,返回一个对象,使用该对象时才执行查询;应用类级别的加载策略。
1>延迟加载:仅仅获得,没有使用,不会查询,在使用时才进行查询
2>是否对类进行延迟加载:可以通过在class元素上配置lazy属性来控制
lazy(默认):true 查询类时会返回代理对象,会在使用属性时根据关联的session查询数据库,加载数据
加载时不查询,使用时才查询
lazy:false 加载时立即查询,和get方法没有区别
结论:为了提高效率,建议使用延迟加载(懒加载)
3>注意:使用懒加载时要确保,调用属性加载数据时,session还是打开的,不然会抛出异常。
二、关联级别查询
1、集合策略lazy属性:决定是否延迟加载
true(默认):延迟加载,懒加载
false:立即加载
extra:极其懒惰,与懒加载效果基本一致
fetch属性:决定加载策略,使用什么类型的SQL语句加载集合数据
select(默认):单表查询加载
join:使用多表查询加载集合
subselect:使用子查询加载集合
2、关联属性策略
lazy属性:决定加载时机
false:立即加载
proxy:由Customer的类级别加载策略决定
fetch属性:决定加载的SQL语句
select:使用单表查询
join:使用多表查询
3、结论
为了提高效率,fetch应选择select,lazy应选择 true,全部使用默认值。
4、no-session问题解决
扩大session的作用范围
三、批量抓取
batch-size:抓取集合的数量在抓取客户的集合时,一次抓取几个客户的联系人集合
相关文章推荐
- 【05】框架学习—Hibernate中查询详解与查询优化
- hibernate框架学习笔记12:查询优化
- 二、框架学习 (一)Hibernate框架学习 (4)Hibernate查询操作
- 【SSH】Hibernate学习(四)HQL语法、Criteria查询、查询优化
- Hibernate框架学习(八)——查询-HQL语法
- 框架学习之hibernate-03查询、缓存
- 框架学习之Hibernate 第五节 HQL和Criteria查询入门
- 【Hibernate框架开发之九】Hibernate 性能优化笔记!(遍历、一级/二级/查询/缓存/乐观悲观锁等优化算法)
- hibernate框架学习笔记7:HQL查询、Criteria查询简介
- Hibernate框架学习(五)——批量查询(概述)
- hibernate框架学习笔记10:HQL查询详解
- 【Hibernate框架开发之九】Hibernate 性能优化笔记!(遍历、一级/二级/查询/缓存、乐观悲观锁等优化算法)
- hibernate框架的查询优化(二十三)
- 【Hibernate框架开发之九】Hibernate 性能优化笔记!(遍历、一级/二级/查询/缓存、乐观悲观锁等优化算法)
- hibernate框架学习笔记11:Criteria查询详解
- CI框架学习之六 ( 数据库查询缓存优化 )
- hibernate框架学习---HQL查询
- Hibernate学习文档_查询优化
- Hibernate学习(1):查询demo
- SSH(Spring+Struts+Hibernate)框架学习之分页技术的实现