Hibernate查询优化
来源:互联网 发布:手机淘宝淘金币在哪里 编辑:程序博客网 时间:2024/06/08 09:03
Hibernate查询优化简介
查询优化我们从两个方面来说:
1)类级别查询策略
2)关联级别查询策略
one by one
类级别查询策略
类级别查询策略就一点,就是使用延迟加载,什么是延迟加载呢?通俗的讲就是在你不使用时不加载,使用时根据关联的session加载数据。
延迟加载的实现原理:很简单就是使用动态代理。
所以只要我们调用方法查询到的对象时代理对象的时候,请注意,我们使用的时延迟加载策略。
我们来看一下延迟加载策略的体现:
这两张图看完就一目了然了吧!那么我们如何修改类级别的延迟加载策略呢?
<!-- lazy属性来修改类级别的延迟加载策略,true(默认)延迟加载,false立即加载 --><class name="Kind" lazy="true">我想说的很清除了吧!
关联级别的查询策略
下面我们来瞅瞅关联级别的查询策略:
从两个方面来进行阐述:
1)<set>集合查询策略
2)<many-to-one>关联属性查询策略
one by one
<set>集合查询策略
<!-- 集合查询策略有两个限制属性:lazy,fetch --><set name="products" lazy="true" fetch="join"><key column="kid"></key><one-to-many class="Product"/></set>
lazy的取值及作用:(加载策略)
1:true:开启延迟加载
2:false:关闭延迟加载
3:extra:开启及其懒惰加载
fetch的取值及作用:(抓取策略)
1:select:使用单表查询
2:join:使用多表查询
3:subselect:使用子查询
延迟加载我们就不一一演示了,我们就看一下抓取策略的效果吧!
1)使用单表查询
2)多表查询
(3)子查询
一时没有找到很好的案例,就不演示了。
<many-to-one>关联属性查询策略
<many-to-one name="kind" class="Kind" column="kid" lazy="false" fetch="join"></many-to-one>
lazy的取值及作用:
(1)false:延迟加载
(2)proxy:代理,即参考kind类的加载策略
fetch的取值及作用:
(1)join
(2)select
上面都演示过了在这就不一一演示了,为了提高hibernate的性能,我们均采用默认值即可。
阅读全文
0 0
- hibernate查询性能优化
- 优化Hibernate查询
- hibernate查询性能优化
- Hibernate优化查询策略
- Hibernate优化查询策略
- Hibernate优化查询策略
- Hibernate优化查询策略
- Hibernate查询优化
- Hibernate优化查询性能手段
- Hibernate查询优化 HQL提高效率
- Hibernate查询性能优化技巧
- hibernate查询优化----延迟加载优化
- Hibernate学习文档_查询优化
- 对Hibernate框架的查询进行优化
- Hibernate查询性能优化(多对多关联查询)
- ssh框架hibernate 查询方式和查询功能优化
- hibernate之优化抓取(优化指导方针---n+1查询问题)
- 基于hibernate缓存机制的查询性能优化研究
- IBM MQ 简单示例
- 利用libpng中的函数读写png文件
- Shell 脚本基础学习 (四)
- 省市联动选择
- Shell 脚本基础学习 (三)
- Hibernate查询优化
- Shell 脚本基础学习 (二)
- Thymeleaf 入门基础
- Shell 脚本基础学习 (一)
- 图解Linux命令之--ethtool命令
- 排序——冒泡、归并、快速、选择、插入、堆
- Java:String和Date、Timestamp之间的转换
- Data URI Base 64 编码转为图片
- Spring Boot 添加 Thymeleaf 支持