jetcache icon indicating copy to clipboard operation
jetcache copied to clipboard

是否支持 @CacheInvalidate 根据name删除

Open zb315044652 opened this issue 1 year ago • 1 comments

@Mapper
public interface UserMapper {

    @CacheInvalidate(name = "UserMapper:", key = "#args[0]")
    int deleteByPrimaryKey(Long id);

    @CacheInvalidate(name = "UserMapper:", key = "*")
    int insertSelective(UserDO record);

    @Cached(name = "UserMapper:", key = "args[0]", expire = 3600, localExpire = 3500, timeUnit = TimeUnit.SECONDS, cacheType = CacheType.BOTH)
    UserDO selectByPrimaryKey(Long id);

    @CacheUpdate(name = "UserMapper:", key = "args[0].id", value = "args[0]")
    int updateByPrimaryKeySelective(UserDO record);

    @CacheUpdate(name = "UserMapper:", key = "args[0].id", value = "args[0]")
    int updateByPrimaryKey(UserDO record);

    int batchInsert(@Param("list") List<UserDO> list);

    @Cached(name = "UserMapper:", key = "'status:' + args[0]", expire = 3600, localExpire = 3500, timeUnit = TimeUnit.SECONDS, cacheType = CacheType.BOTH)
    List<UserDO> selectByStatus(Integer status);

    List<UserDO> selectAll();
}

在这种使用场景下,不仅要根据ID做缓存,还需要根据某个状态status做缓存,为了保证数据正确性,在新增的时候需要清理缓存,需要根据 @CacheInvalidate(name = "UserMapper:") 进行清理全部名称前缀为UserMapper:的缓存,是否支持这样的功能?

zb315044652 avatar Nov 25 '24 12:11 zb315044652

同问,好像没人维护issue

blysin avatar Feb 12 '25 07:02 blysin