浅析 hibernate二级缓存与查询缓存之间的关系
来源:互联网 发布:魔兽世界官方小说软件 编辑:程序博客网 时间:2024/06/05 18:41
我们先看一下什么样的hibernate操作会将数据存入到一级缓存中去,当调用下边这些方法的时候会将数据存入到一级缓存中
一级缓存
save、update、saveOrupdate、load、list、iterate、lock,例如:
从一级缓存中取数据的操作get、load、list
二级缓存和查询缓存
二级缓存是SessionFactory级别的全局缓存,它为每个类(或集合)提供缓存。凡是调用二级缓存的查询方法都会从中受益,比如load,list,iterate等方法(注意,get和find不使用缓存,直接访问数据库)。开启条件:
1)hibernate.cache.provider_class=org.hibernate.cache.EhCacheProvider(这里指定了ehcache)
2)hbm.xml配置<cache usage="read-write"/>
3)ehcache.xml定义该类的cache
简单地说,二级缓存是用来保存类对象的,并且填充它的所有属性值。
查询缓存保存的是查询方法(list和iterate等)查询的sql语句和结果集,跟load这种装载对象的方法没有关系。也就是说,使用load方法,查询缓存不理睬。
并且这个结果集只是对象id列表,对象的其他属性值不保存。例如,list执行的时候,先根据查询缓存中的sql语句,获取对象id列表,然后再load(id)来取对象。
开启条件:
1) hibernate.cache.use_query_cache=true
2)Query或者Criteria使用时,设置setCacheable(true)
简单地说,查询缓存是用来保存sql执行后获取的对象id列表。下一次执行同一条sql时,可直接从查询缓存中获取到对象id列表。
查询缓存是只存储对象的id的,并不去存储真正的对象,查询缓存作为key值的是 hql语句+参数+分页。
0 0
- 浅析 hibernate二级缓存与查询缓存之间的关系
- hibernate二级缓存与查询缓存之间的关系
- hibernate二级缓存与查询缓存之间的关系
- Hibernate一级缓存、二级缓存以及查询缓存的关系
- Hibernate一级缓存、二级缓存以及查询缓存的关系
- Hibernate-二级缓存与查询缓存
- HIbernate一级缓存与二级缓存之间的区别
- hibernate的一级缓存、二级缓存、查询缓存
- 浅析Hibernate的一级缓存和二级缓存
- Hibernate二级缓存与查询缓存的组合探究
- Hibernate二级缓存与查询缓存的组合探究
- Hibernate查询方法与缓存的关系
- Hibernate查询方法与缓存的关系
- Hibernate查询方法与缓存的关系
- Hibernate查询方法与缓存的关系
- Hibernate查询方法与缓存的关系
- Hibernate的二级缓存之查询缓存
- hibernate的二级缓存和查询缓存
- 用开源软件搭建自己的物联网
- 走进Reac
- [编程题] 有趣的数字
- redis中 Could not get a resource from the pool 异常解决
- Hibernate唯一约束
- 浅析 hibernate二级缓存与查询缓存之间的关系
- R语言学习十二
- 算法提高 理财计划
- android的spinner继承BaseAdapter设置选中和item不同的背景
- 通过一个打开APP之 Android scheme
- 关于在Response Header中取不到的问题
- 分享新作:休闲小游戏『Flying Stone』
- 程序员的机器学习入门笔记(八):最优化与计算复杂度概述
- 比较器的简单应用(Comparable接口)