SpringBoot Mybatis redis 二级缓存配置 总是有乱码key 包括不能转换成为int?

问题: 使用 redis做缓存,采用注解方式,Dao层的代码如图, springboot 启动类上@EnableCaching 开启了缓存。 但是redis上面存的值为错误信息,错误信息为

org.springframework.cache.interceptor.SimpleKey cannot be cast to java.lang.String

java.lang.Integer cannot be cast to java.lang.String

图片描述

    @Cacheable(value = "listphotos")
    @Select("SELECT id,time,path,width,height FROM blog_file_pic")
    List<PicDto> listPhotos();

环境:Spirngboot ,mybatis ,redis

网上找了很多相关信息,写了一个配置类,手动在redis储存相关信息不会有任何乱码值,而mybatis的redis配置的缓存还是回报错,请问各位怎么解决呢?

阅读 5.2k
1 个回答

缓存的key值错误,重写key的命名生成,并且在mapper(dao) 里面@Cacheable 不要设置自己的key,可以解决以上错误。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题