当前使用版本(必填,否则不予处理)

3.4.2

该问题是如何引起的?(确定最新版也有问题再提!!!)

当前使用的是通过@Cacheable来进行Redis的存取。使用Ipage分页后,从Redis中取值后,是首先通过空构造器构造一个对象,然后逐个字段set,但是Ipage的实现类Page中的records属性空构造出来后默认为Collections.emptyList(),所以在set时对空集合add会报错。

个人修改是将records默认初始化为new ArraryList();

(新版源码依旧是records=Collections.emptyList();

重现步骤(如果有就写完整)

在一个接口上使用IPage封装的同时使用@Cacheable注解

报错信息

UnSupportedOperationException

Comment From: showlist

为什么要设置字段,而不是直接设置list结果为records?

Comment From: showlist

为什么要设置字段,而不是直接设置list结果为records?

Comment From: advancer777

要设置字段,而不是直接设置列表为记录?

使用@Cacheable时,redis将数据取回封装对象的时候就是逐个封装。就像是解析json为实体类一样

Comment From: heihei180

建议你自己创建个page 实现类 包装一下、另外还有这需求吗?将 ipage 缓存?下次来的时候直接走缓存?

Comment From: qmdx

up