二级缓存的配置及什么数据入二级缓存以及查询缓存

hibernate二级缓存,属于sessionFactory的级别,是全局缓存,它的生命周期和sessionFactory一致

配置步骤:
1: 要使用二级缓存<property name="hibernate.cache.use_second_level_cache">true</property>

2:使用哪个缓存提供商<property name="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</property>

3:把对应的缓存提供商的配置文件拷贝src下

4:指定哪些类使用二级缓存
1:在hibernate.cfg.xml中配置 <class-cache class="com.cs.Person" usage="read-write" />
2:在类的配置文件中配置:<cache usage="nonstrict-read-write" />
推介用第一种方法,理由:方便管理

什么数据入二级缓存:
1:数据不能被第三方应用修改
2:数据量不能太大
3:数据的更新频率要比较低
4:数据应该是被频繁的查询的数据
5:非关键数据
6:参考数据
参考数据的特点:
1>他的实例的数目有限
2>它的每个实例都会被其他类的实例引用
3>它的实例极少或者从来不修改

以下数据不适合放到二级缓存中
1》经常被修改
2》财务数据,绝对不容许出现并发问题
3》其他应用共享的数据。因为如果其他应用修改了数据,hibernate无法保证二级缓存中的数据和数据库中的数据一致。


查询缓存:查询缓存必须依赖于二级缓存

1:配置<property name="hibernate.cache.use_query_cache">true</property>
2:query.setCacheable(true) ;
3:查询缓存和session无关

注意:删除尽量不要用createQuery("delete from Object") 因为不能做到同步
建议使用session的delete()方法 , delete后就变为临时状态了.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值