hibernate缓存机制详细分析
来源:互联网 发布:淘宝同行恶意差评 编辑:程序博客网 时间:2024/06/05 08:06
在本篇随笔里将会分析一下hibernate的缓存机制,包括一级缓存(session级别)、二级缓存(sessionFactory级别)以及查询缓存,当然还要讨论下我们的N+1的问题。
随笔虽长,但我相信看完的朋友绝对能对hibernate的 N+1问题以及缓存有更深的了解。
一、N+1问题
首先我们来探讨一下N+1的问题,我们先通过一个例子来看一下,什么是N+1问题:
list()获得对象:
那么这种 N+1 问题我们如何解决呢,其实我们只需要使用 list() 方法来获得对象即可。但是既然可以通过 list() 我们就不会出现 N+1的问题,那么我们为什么还要保留 iterator()这种形式呢?我们考虑这样一种情况,如果我们需要在一个session当中要两次查询出很多对象,此时我们如果写两条 list()时,hibernate此时会发出两条 sql 语句,而且这两条语句是一样的,但是我们如果第一条语句使用 list(),而第二条语句使用 iterator()的话,此时我们也会发两条sql语句,但是第二条语句只会将查询出对象的id,所以相对应取出所有的对象而已,显然这样可以节省内存,而如果再要获取对象的时候,因为第一条语句已经将对象都查询出来了,此时会将对象保存到session的一级缓存中去,所以再次查询时,就会首先去缓存中查找,如果找到,则不发sql语句了。这里就牵涉到了接下来这个概念:hibernate的一级缓存。
0 0
- hibernate缓存机制详细分析
- hibernate缓存机制详细分析
- hibernate缓存机制详细分析
- hibernate缓存机制详细分析
- hibernate缓存机制详细分析
- Hibernate缓存机制详细分析
- hibernate缓存机制详细分析
- hibernate缓存机制详细分析
- hibernate 缓存机制详细分析
- hibernate缓存机制详细分析
- hibernate缓存机制详细分析
- hibernate缓存机制详细分析
- hibernate缓存机制详细分析
- hibernate缓存机制详细分析
- hibernate缓存机制详细分析
- hibernate缓存机制详细分析
- hibernate缓存机制详细分析
- hibernate缓存机制详细分析
- 在webView上添加视图
- eclipse发布web项目到tomcat
- solr 的客户端调用solrj 建索引+分页查询
- ThreadLocal与Synchronized的使用场景
- HTML和iOS的交互,点击html中按钮,ios进行原生方法调用,及ios传值到HTML
- hibernate缓存机制详细分析
- 安装Oracle客户端后,eclipse启动不了;启动之后,Override报错
- ESXI出现红屏问题
- 多线程执行时为什么调用的是start()方法而不是run()方法
- XML知识索引
- ThreadLocal与synchronized
- 切割圆形头像
- CDISC SDTM AE domain学习笔记 - 2
- 小优机器人WIFI+SSDP入网具体实现