文档章节

hibernate三级缓存概括

 挨踢精英
发布于 2015/10/12 16:22
字数 506
阅读 1806
收藏 7

Hibernate三级缓存

一级缓存(session级别缓存):

1、session关闭后,缓存就没了;hibernate发出一条sql查询,若缓存中没有,则从数据库中查,查到之后放入缓存

2、以id为key值缓存对象


二级缓存(sessionFactory级别缓存):

1.hibernate没有提供相应的二级缓存组件,所以需要额外的二级缓存包EHcache

2.hibernate二级缓存存的仅仅是对象,就算只想查询这个对象的某几个属性,还是会把这个对象的所有信息查询出来。

3.当一级缓存关闭之后,一级缓存就失效了,若这个对象配置了二级缓存,就算session关闭,hibernate会从二级缓存(sessionFactory)中查到数据。



三级缓存(查询缓存:sessionFactory级别):

1、查询缓存是专门针对各种查询操作进行缓存。查询缓存会在整个SessionFactory的生命周期中起作用,存储的方式也是采用key-value的形式来进行存储的。

       2、查询缓存中的key是根据查询的语句、查询的条件、查询的参数和查询的页数等信息组成的。而数据的存储则会使用两种方式,使用SELECT语句只查询实体对象的某些列或者某些实体对象列的组合时,会直接缓存整个结果集。而对于查询结果为某个实体对象集合的情况则只会缓存实体对象的ID值,以达到缓存空间可 以共用,节省空间的目的。

      3、在使用查询缓存时,除了需要设置hibernate.cache.provider_class参数来启动二级缓存外,还需要通过hibernate.cache.use_query_cache参数来启动对查询缓存的支持。


注:缓存一般只对查询比较对,更改比较少的数据进行设置,若修改较多反而会影响hibernate的效率。

© 著作权归作者所有

共有 人打赏支持
粉丝 2
博文 32
码字总数 8431
作品 0
株洲
从企业级架构迁移到互联网架构的工程实践

因工作变动接手了一个云平台改造项目,该项目属于己经上线且每月有大量交易订单的云平台,之前采用的是SpringMVC+Hibernate+FreeMarker+MySql架构,集web前端和接口为一体。经过对业务增长趋...

Elvis.Xiong
2016/09/18
1K
18
Hibernate(一)

Hibernate基础 1.1 Hibernate与JDBC的优缺点 Hibernate 优点 1、比较简单 2、数据缓存:一级缓存 二级缓存 查询缓存 3、移植性比较好 缺点 1、因为sql语句是hibernate内部生成的,所以程序员...

Hu_Captain
2015/09/06
85
0
day32_Hibernate学习笔记_04

一、Hbernate中的日志框架整合log4j(了解) Hibernate 利用 Simple Logging Facade for Java (SLF4J) 来记录不同系统事件的日志。SLF4J 可以根据你选择的绑定把日志输出到几个日志框架(NOP、...

黑泽明军
07/15
0
0
Hibernate缓存策略详解

Hibernate缓存策略 1. 数据缓存 1.1. 概述 缓存是数据库数据临时容器,它包含了库表数据的临时拷贝,位于数据库与数据访问层之间。 ORM 在进行数据读取时,会根据其缓存管理策略,首先在内存...

提广乾
2012/09/11
0
0
Android实战——RxJava2解锁图片三级缓存框架

RxJava2解锁图片三级缓存框架 本篇文章包括以下内容 前言 图片三级缓存的介绍 框架结构目录的介绍 构建项目整体框架 实现图片三级缓存 演示效果 源码下载 结语 前言 RxJava2作为如今那么主流...

qq_30379689
2017/04/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

python进制转换

#进制转换print(bin(10)) #十进制转换成二进制print(oct(10)) #十进制转换成八进制print(hex(10)) #十进制转换成十六进制print(int('1010',2)) #二进制转十进制print(int(...

fadsaa
13分钟前
0
0
syntax error near unexpected token

最近不断重复在虚拟机CentOS测试安装gitlab,因为gitlab有一个脚本需要饭强才能下载,于是我先在windows下载好再上传到虚拟机,可是执行脚本的时候提示“syntax error near unexpected toke...

W_Lu
23分钟前
1
0
Redis基础、高级特性与性能调优

本文将从Redis的基本特性入手,通过讲述Redis的数据结构和主要命令对Redis的基本能力进行直观介绍。之后概览Redis提供的高级能力,并在部署、维护、性能调优等多个方面进行更深入的介绍和指导...

Java干货分享
24分钟前
1
0
Redis使用lua脚本实现increase + expire 的原子操作

lua脚本: public Integer incrEX(String key, long defaultExpire){ String script = "local current = redis.call('incr',KEYS[1]);" + " local t = redis.call......

大海201506
25分钟前
0
0
Dubbo 源码分析(一)一环境搭建

环境搭建的步骤有哪些 依赖外部的环境 使用的开发工具 源码的拉取 结构大致介绍 1 依赖的外部环境 安装JDK 安装Git 安装maven 这边我们就不介绍怎么安装这些外部环境了,大家自行从安装这些外...

小刀爱编程
26分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部