SpringBoot中缓存@Cacheable出错的问题解决
更新时间:2025年10月21日 09:39:34 作者:梁云亮
本文主要介绍了SpringBoot中缓存@Cacheable出错的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
错误代码:
@Cacheable(value = "FrontAdvertiseVOList", keyGenerator = "cacheKey")
@Override
public List<FrontAdvertiseVO> getFrontAdvertiseVOList(Integer count) {
return this.list(Wrappers.<Advertise>lambdaQuery()
.select(Advertise::getPic, Advertise::getUrl)
.eq(Advertise::getState, 1)
.orderByDesc(Advertise::getPriority)
.last("limit " + count))
.stream()
.map(advertise -> new FrontAdvertiseVO(advertise.getPic(), advertise.getUrl()))
.toList(); // ----------- ①
}
运行程序,出错:
org.springframework.data.redis.serializer.SerializationException: Could not read JSON:Unexpected token (START_OBJECT), expected VALUE_STRING: need String, Number of Boolean value that contains type id (for subtype of java.lang.Object) at [Source: REDACTED (`StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION` disabled); line: 1, column: 2]
解决方案
只需要将编号①处的代码修改为:
.collect(Collectors.toList());
原理
collect(Collectors.toList())返回的数据:

toList()返回的数据:

collect(Collectors.toList()) 和 toList() 的主要区别在于返回的列表类型和可变性:
- collect(Collectors.toList()):返回的是一个普通的 ArrayList ,因此可以进行添加、删除和修改操作
- toList():返回的是通过对原始数组创建一个不可修改的列表。一旦创建,就不能对其进行添加、删除或修改操作
使用场景:
- toList():适用于不需要对列表进行修改的场景,如从数据库查询数据等,因为它返回的是不可变列表,可以防止数据被意外修改
- collect(Collectors.toList()):适用于需要对列表进行修改的场景,因为它返回的是普通的ArrayList,可以进行各种操作
到此这篇关于SpringBoot中缓存@Cacheable出错的问题解决的文章就介绍到这了,更多相关SpringBoot缓存@Cacheable出错内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Spring Boot拦截器和监听器实现对请求和响应处理实战
这篇文章主要介绍了Spring Boot拦截器和监听器实现对请求和响应处理实战,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2023-06-06
SpringSecurity根据自定义异常返回登录错误提示信息(账户锁定)
本文介绍了在SpringSecurity中根据自定义异常返回登录错误提示信息的方法,特别是在账户锁定时,通过记录输错次数、重写校验方法并抛出自定义异常,感兴趣的可以了解一下2025-01-01
java格式化数字操作 NumberFormat及DecimalFormat
这篇文章主要介绍了java格式化数字操作 NumberFormat及DecimalFormat,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2021-10-10
Springboot jpa @Column命名大小写问题及解决
这篇文章主要介绍了Springboot jpa @Column命名大小写问题及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2021-10-10


最新评论