HIbernate二级缓存

1.二级缓存环境搭建

1.1导入jar包

       Hibernate包下的lib\optional\ehcache下的jar包,其中有ehcache-core-2.4.3hibernate-ehcache-5.0.1.Final

slf4j-api-1.6.1三个jar文件。

1.2导入配置文件(ehcache.xml)

     将ehcache.xml文件放在src文件夹下,该文件在 hibernate-release-5.0.1.Final\lib\optional\ehcache下的ehcache-core-2.4.3.jar

包中的 ehcache-failsafe.xml,并将其改名为ehcache.xml

1.3开启二级缓存

      在hibernate.cfg.xml文件中进行配置,开启二级缓存:

<property name="hibernate.cache.use_second_level_cache">true</property>

      注册二级缓存区域工厂:

<property name="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.EhCacheRegionFactory</property>

1.4配置缓存数据对象并发策略

    方式一: 在.hbm.xml文件中配置

<class name="com.entity.Country" table="COUNTRY">
    	<!-- 指定该类为缓存对象,即类缓存 -->
    	<cache usage="read-only"/>
    	
        <id name="cid" type="java.lang.Integer">
            <generator class="native" />
        </id>
        <property name="cname" type="java.lang.String">
        </property>
        <!-- 级联保存cascade -->
        <set name="ministers" cascade="save-update" fetch="select" table="MINISTER" inverse="false" lazy="true">
            <!-- 指定该集合为缓存对象,即集合缓存 -->
            <cache usage="read-only"/> 

            <key  column="cid"/>
            <one-to-many class="com.entity.Minister" />
        </set>
</class>

   方式二: 在.cfg.xml文件配置(集中配置)(推荐使用)

<!-- 指定类缓存 -->
<class-cache usage="read-only" class="com.entity.Country"/>
<class-cache usage="read-only" class="com.entity.Minister"/>
<!--指定集合缓存 -->
<collection-cache usage="read-only" collection="com.entity.Country.ministers"/>

2.Hibernate二级缓存

    2.1hibernate支持的缓存插件

插件名集群物理介质Hibernate的查询缓存
EHCache不支持内存或硬盘 支持
OpenSymphony`支持内存或硬盘支持
SwarmCache支持集群不支持
JBossCache支持集群支持

 

 

 

 

 

 

2.2并发访问策略

transactional(事务型):缓存支持事务,发生异常的时候,缓存也能够回滚;

                                        适用经常被读,很少修改的数据;可以防止脏读和不可重复读的并发问题。

read-write(读写型):更新缓存的时候会锁定缓存中的数据;

                                        适用经常被读,很少修改的数据;可以防止脏读。

nonstrict-read-write(非严格读写型):不锁定缓存中的数据;

                                      适用极少被修改,偶尔允许脏读的数据(两个事务同时修改数据的情况很少见)。

read-only(只读型):事务隔离级别低,并发性能高;适用从来不会被修改的数据(如参考数据);

                                        适用从来不会被修改的数据(如参考数据)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

RWTHeart

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值