常见问题

  1. 开启二级缓存时、修改数据后没有清空缓存、导致从缓存拿到老数据
    • 现象:使用 @CacheNamespace(implementation = LoggingEhcache.class) 开启二级缓存后,在使用 @Resource 注入 Mapper 时,即使数据已更新,查询仍返回旧数据。
    • 原因:@Resource@Autowired 的注入策略不同,导致最终使用的 SqlSessionTemplate 不是 MyBatis-Plus 专门为二级缓存配置的那一个
    • 解决方案:在 Spring 环境中,始终优先使用 @Autowired 注入 MyBatis Mapper,确保缓存能在数据修改后正确失效。