为什么Spring @CacheEvict
和@CachePut
在事务提交后不会调用;
我想通过这种方式,我们可以避免一些错误。例如,在evict缓存和事务提交之间进行@Cacheable
调用,然后缓存中的值是脏数据。
我看到了CacheInterceptor
,但看到我无法重写它。有人可以告诉我,交易提交后我怎么能@CacheEvict
或@CachePut
?
答案 0 :(得分:0)
如果CacheManage
扩展为AbstractTransactionSupportingCacheManager
,则可以调用setTransactionAware(true)
,然后在事务提交后调用@Cache;