本系列文章在 https://github.com/freestylefly/javaStudy 持(jing)续(chang)更(duan)新(geng)中,欢迎有兴趣的童鞋们关注。
一、Hibernate优化处理
1、缓存
2、抓取策略
前面已经整理过Hibernate的一级缓存,二级缓存实际开发中用Redis替代
二、延迟加载的概述
1、什么是延迟加载
延迟加载:lazy(懒加载)。执行到该行代码的时候,不会发送语句去进行查询,在真正使用这个对象的属性的时候才会发送SQL语句进行查询
2、延迟加载的分类
抓取策略往往会和关联级别的延迟加载一起使用,优化语句。
三、抓取策略
1、抓取策略概述
fetch主要控制sql的格式,是采用连接方式还是普通查询,lazy控制的是延迟加载
2、<set>
上的fetch和lazy
不同的值会产生不同的组合效果,需要可自行配置
1 |
|
3、<many-to-one>
上的fetch和lazy
1 |
|
4、批量抓取
一批关联对象一起抓取,batch-size
比如像通过查询所有客户的同时获得所有联系人的信息,如果不采用批量抓取,会导致多次访问数据库,执行效率很低
1 | package com.canghe.test; |