使用@Cacheable后报类型转换失败

不想听废话的:看是不是因为你redis存储的数据类型和你要返回的类型不一致,造成了类型转换异常

在项目中,一些频繁的查询操作更好的解决方案是利用redis缓存而不是每次都操作数据库查询,这样会造成大量的不必要的性能浪费。
我们可以利用Spring框架给我们提供的@Cacheable注解来进行和redis的搭配从而解决这样的问题。
因为本篇文章不是讲解@Cacheable的使用,如果有想了解的朋友,可以看SpringBoot 缓存之 @Cacheable 详细介绍这篇文章,我觉得作者写的还挺详细。
那么开始进入主题,我出现的问题是控制台报出类型转换异常,Result类型(我自己封装的)无法转换为List类型,刚开始我还以为是项目缓存问题,但是重构了两次项目发现没有作用,就准备利用debug调试,但是发现加了@Cacheable的方法根本不会调用,直接抛出类型转换异常,
然后我才想起来在我推荐的这篇文章中,作者是这样写到的Spring Cache 是作用在方法上的,其核心思想是,当我们在调用一个缓存方法时会把该方法参数和返回结果作为一个键值对存在缓存中。这时我就想到原来我的@Cacheable是加在controller层中的,后来迁移到了service层,返回类型不一致但没有变更cacheNames,所以造成了类型转换异常。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值