本系列文章在 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; |
本文章已同步至我的GitHub仓库:Javastudy,期待您的加入:blush:

本文章已同步至苍何的个人博客,可以直接在博客上留言哦:blush:

来我的微信公众号玩耍呗:blush:

扫码无套路关注我的CSDN博客:blush:

