作者:神秘丹吧维护者 | 来源:互联网 | 2023-09-24 18:22
问题
今天晚上在使用若依框架,发现查询用户的时候明明有十几条数据,且只告诉我total只有10条。
分析了一下controller层,发现我重写了它的方法。
原原本本的写法
他从service查询列表出来得到一个List。他查询出来的是total是没问题的,刚好符合。
而我 用了一个Volist,同时用 new ArrayList 初始化。
Debug种可以发现
list的类型是Page (com.github.pagehelper)
而我Volist的类型是ArrayList。
那么肯定有问题嘛。
我们再仔细看下面这个方法
return getDataTable(voList);
他是从中获取到total,然后设置给统一返回类的。
因为我们没有这个参数。所以他走了下面这个方法
他去判断了一下类型,不是page类型,直接返回list的size方法。也就是10条嘛。
解决方法
List voList = new ArrayList<>();
换成
Page list = (Page) wxExpertUserService.selectWxExpertUserList(wxExpertUser); Page voList = new Page<>();voList.setTotal(list.getTotal());
需要要获取到的List强转为Page类型。如何从中获取到total。