最近看到Entity中的Cache中的CacheConcurrencyStrategy ,有些忘记具体的策略了,回顾记录下.
Use
直接加载entity上,或者级联的属性上
缓存方式
查看源码,总共有5种.
CacheConcurrencyStrategy.NONE
不适用,默认
CacheConcurrencyStrategy.READ_ONLY
只读模式,在此模式下,如果对数据进行更新操作,会有异常;
对于不发生改变的数据使用
CacheConcurrencyStrategy.READ_WRITE
读写模式在更新缓存的时候会把缓存里面的数据换成一个锁,其它事务如果去取相应的缓存数据,发现被锁了,直接就去数据库查询;
基于时间戳判定机制,对于数据同步要求严格的情况,使用频繁
CacheConcurrencyStrategy.NONSTRICT_READ_WRITE
不严格的读写模式则不会的缓存数据加锁
更新不频繁几个小时或更长
CacheConcurrencyStrategy.TRANSACTIONAL
事务模式指缓存支持事务,当事务回滚时,缓存也能回滚,只支持 JTA 环境。