Hibernate缓存

hibernate的二级缓存也称进程级的缓存或SessionFactory级的缓存,可以被所有的session共享,生命周期同SessionFactory生命周期相同,SessionFactory可以管理二级缓存。

hibernate二级缓存介绍:
  *  实现为可插拔,通过修改hibernate.cfg.xml文件中的cache.provider_class参数来指定不同的cache生成商并使用。

  *  指定要缓存的对象并制定使用的缓存策略方式(两种):
       1.在hibernate.cfg.xml文件中加入<class-cache class="com.yx.zzg.Student" usage="read-only" />
       2.在映射文件中主键生成策略前家入<cache usage="read-only" />
其中usage包含read-only,read-write,nonstrict-read-write,transactional几个参数

  *  Session的:save(这个方法不适合native生成方式的主键,如果为native则不会放入二级缓存中),update,saveOrUpdate,list,iterator,get,load以及Query,Criteria都会填充二级缓存,但只有(没有打开查询缓存时),Session的iterator,get,load会从二级缓存中取数据(iterator可能存在N+1次查询)。

  *  Query,Criteria(查询缓存)由于命中率较低,所以hibernate缺省是关闭;需要在hibernate.cfg.xml文件中设置cache.use_query_cache为true打开查询缓存,并且在方法中需要显示的调用query.setCacheable(true);或criteria.setCacheable(true);

  *  SessionFactory中提供了evictXXX()方法用来清除缓存中的内容

  *  打开统计信息需要在hibernate.cfg.xml中设置generate_statistics为true,用sessionFactory.getStatistics()获取统计信息,该统计信息对于调试非常有用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值