hibernate的二级缓存
来源:互联网 发布:汽车加油优惠软件 编辑:程序博客网 时间:2024/06/14 21:21
重点:一级缓存和二级缓存的本质区别是,二级缓存关闭事务后还存在
一个是对对象的缓存,配置有2中方法:
①注解方式:在实体上配置@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE) 并指定缓存并发策略
②配置文件方式:<class-cache class="com.sy.vo.User" usage="read-write" />
一个是查询缓存(默认不开启):
查询缓存:
查询缓存是对普通属性结果集的缓存,对实体对象的结果集只缓存id,对于经常使用的查询语句,如果启用了查询缓存,当第一次执行查询语句时,Hibernate会把查询结果存放在二级缓存中,以后再次执行该查询语句时,只需从缓存中获得查询结果,从而提高查询性能,查询缓存中以键值对的方式存储的,key键为查询的条件语句(具体的key规则应该是:类名+方法名+参数列表),value为查询之后等到的结果集的ID列表。
查询缓存的一般过程如下:
①:Query Cache保存了之前查询执行过的SelectSQL,以及结果集等信息组成一个Query Key
②:当再次遇到查询请求的时候,就会根据QueryKey从QueryCache中找,找到就返回,但当数据表发生数据变动的话,hbiernate就会自动清除QueryCache中对应的Query Key
我们从查询缓存的策略中可以看出,Query Cache只有在特定的条件下才会发挥作用,而且要求相当严格:
①:完全相同的SelectSQL重复执行
②:重复执行期间,QueryKey对应的数据表不能有数据变动
开启查询缓存,除了在persistence.xml中有以上配置外,还需要在底层代码手动开启查询缓存
例子
Query query = session.createQuery(hql);
query.setCacheable(
true
);
//启用查询缓存
query.setCacheRegion(“queryCacheRegion”);
//设置查询缓存区域(数据过期策略)
query.list();
阅读全文
0 0
- Hibernate的一二级缓存:二级缓存
- hibernate二级缓存的配置
- Hibernate的二级缓存
- hibernate的二级缓存
- hibernate二级缓存的实现
- Hibernate的二级缓存
- HIBERNATE二级缓存的东东
- hibernate二级缓存的实现
- hibernate二级缓存的配置
- hibernate 的二级缓存
- Hibernate---二级缓存的管理
- hibernate的二级缓存
- hibernate 二级缓存的使用方法
- hibernate的二级缓存详解
- hibernate的二级缓存配置
- hibernate的二级缓存
- hibernate的二级缓存
- Hibernate神秘的二级缓存
- 零基础 学Python
- springMVC-笔记003-spring配置文件
- 欢迎使用CSDN-markdown编辑器
- hibernate的load()和get()的区别
- unexpected token: * near line 1, column 8 [select * from t_one_buy where 1=1 order by create_date de
- hibernate的二级缓存
- IntelliJ maven项目pom文件错误failed to read artifact descriptor for xx.jar问题解决办法
- java变量命名规则
- NFC (一)概述
- idea 15 获取activation code
- Hibernate中的update()和saveOrUpdate()的区别.
- **论NOIP之"不该错的"**(c++语言)
- springMVC-笔记004-测试用的pom.xml
- 一次完整的HTTP事务是怎样一个过程?