博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hibernate三级缓存概括
阅读量:6970 次
发布时间:2019-06-27

本文共 804 字,大约阅读时间需要 2 分钟。

hot3.png

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的效率。

转载于:https://my.oschina.net/u/2291124/blog/515924

你可能感兴趣的文章
寒冰linux视频教程笔记4 目录
查看>>
zabbix中通过shell脚本进行微信监控告警
查看>>
Windows下Nginx的启动、停止等命令
查看>>
我的友情链接
查看>>
sed运用实例一——基于变量的动态替换
查看>>
centos下搭建svn的安装过程
查看>>
Html 常见问题
查看>>
网站安全检测之图片验证码
查看>>
PB 级数据处理挑战,Kubernetes如何助力基因分析?
查看>>
vue cle新建vue项目
查看>>
配置网络、远程登录
查看>>
阿里架构师干货分享——eureka分布式框架demo
查看>>
GitHub十周岁HanLP自然语言处理包用户量超越CoreNLP
查看>>
Pycharm上Django的使用 Day2
查看>>
5.22-zabbix监控Nginx
查看>>
JVM基础系列开篇:为什么要学虚拟机?
查看>>
unicode字符串转list的方法
查看>>
OSChina 周五乱弹 —— 草莓味的唇膏是什么味道?
查看>>
OSChina 周三乱弹 ——纪念Bob Taylor
查看>>
OSChina 周一乱弹 ——爱丽三个小时没吃鱼罐头了
查看>>