1. @Caching 组合注解在多缓存操作中的事务边界与回滚行为
请说明 @Caching 组合注解在多缓存操作中的事务边界与回滚行为?
- @Caching 组合多个缓存注解
- 多缓存操作顺序
- 与事务的回滚行为
@Caching 用于在一个方法上组合多个缓存注解(@Cacheable/@CachePut/@CacheEvict),例如同时更新多个缓存或删除多个缓存。多缓存操作按缓存注解顺序执行。事务边界:Spring Cache 的缓存操作与事务(@Transactional)的协作——缓存操作默认在事务提交前/后执行,具体取决于缓存操作类型与事务阶段。若事务回滚,缓存操作可能已执行导致不一致(缓存与 DB 不一致)。@Caching 组合多缓存操作时,需注意缓存操作与事务的回滚一致性:缓存失效/更新应与事务提交对齐(如 @TransactionalEventListener 或缓存操作在事务提交后执行),避免"事务回滚但缓存已更新"。
@Caching 组合多缓存操作,事务边界是"缓存与 DB 一致性"。缓存操作应尽量与事务提交对齐,避免回滚后缓存不一致。