关于Hibernate的缓存机制 总结


1.Hibernate的缓存机制包括两个级别

(1)session 级别的一级缓存。

    Session级别的以及缓存不需要开发者关心,默认都是开启的状态。当应用保存持久化实体、修改持久化实体的时候,Session并不会把这种改变flush到数据库中,而是缓存在当前的session的一级缓存中,除非程序显式的调用session的flush方法或者关闭Session时才会包更改的数据提交到数据库中。

(2)sessionfactory级别的二级缓存。

   SessionFactory级别的二级缓存事故全局性的,应用的所有Session都是共享一个二级缓存。但是SessionFactory级别的缓存默认是关闭的,必须要求程序员显式的开启。如果开启了二级缓存,当Session需要抓取数据时,Session将会优先从二级缓存中抓取。

2. 开启二级缓存(以EHCahe 为例)

(1)在hibernate.cfg.xml 文件中(如果是ssh项目的话在applicationContext.xml 中的 sessionfactory 的Bean配置中添加)开启二级缓存  设置开启二级缓存 和设置二级缓存的实现类

    <prop key="hibernate.cache.use_second_level_cache">True</prop>  <!-- 设置开启二级缓存  -->

 <prop key="hibernate.cache.provider_class">org.hibernate.cache.EHCacheProvider</prop>   <!--设置二级缓存的实现类-->

(2)拷入响应的jar包

复制Hibernate 项目路径下的ehcache 项目下的jar包

(3)配置相应的配置文件 .xml

也是在cache项目下的配置文件

  (4) 设置对哪些实体类、实体类的集合启用二级缓存

在实体类的映射文件中  class 标签下  添加<cache usage="read-only"> 标签


读 李刚老师的《轻量级JavaEE企业应用实战》 总结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值