Hibernate 缓存中 @Cache 的 CacheConcurrencyStrategy 的五种缓存方式

Posted Silenter

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hibernate 缓存中 @Cache 的 CacheConcurrencyStrategy 的五种缓存方式相关的知识,希望对你有一定的参考价值。

使用方法

缓存的注解写法如下,加在 Entity 的 java 类上:
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)

五种情况及说明

1、CacheConcurrencyStrategy.NONE

简介说明:不适用,默认

2、CacheConcurrencyStrategy.READ_ONLY

简介说明:只读模式,在此模式下,如果对数据进行更新操作,会有异常;

使用情景:对于不发生改变的数据使用

3、CacheConcurrencyStrategy.READ_WRITE

简介说明:读写模式在更新缓存的时候会把缓存里面的数据换成一个锁,其它事务如果去取相应的缓存数据,发现被锁了,直接就去数据库查询;

使用情景:基于时间戳判定机制,对于数据同步要求严格的情况,使用频繁;

4、CacheConcurrencyStrategy.NONSTRICT_READ_WRITE

简介说明:不严格的读写模式则不会的缓存数据加锁;

使用情景:更新不频繁几个小时或更长

5、CacheConcurrencyStrategy.TRANSACTIONAL

简介说明:事务模式指缓存支持事务,当事务回滚时,缓存也能回滚,只支持 JTA 环境。

以上是关于Hibernate 缓存中 @Cache 的 CacheConcurrencyStrategy 的五种缓存方式的主要内容,如果未能解决你的问题,请参考以下文章

配置 Hibernate 缓存时遇到问题 - org.hibernate.cache.NoCachingEnabledException:二级缓存未启用使用

hibernate-cache

将@Cacheable 或@Cache 放在实体上方是不是足以让Hibernate 开始缓存?

Hibernate 二级缓存配置

Share Hibernate Second-Level Cache - 多个应用程序可以共享同一个缓存吗

grails 3(spring-boot) - 如何配置hibernate二级缓存