每日知识点(二):若依框架分页总数total错误的问题

Controller:

   @GetMapping("/list")
    public TableDataInfo list(UserVO user) {
        startPage();
        List<? extends SysUser> list = userService.selectUserList(user);
        return getDataTable(list);
    }

说明:

1、startPage使用该方法必须在调用sql的紧挨着上面一句,不然分页无效 ;

                       而且该方法自带排序,如果sql中也加了order by排序,那么需要去掉方法中自带的排序,否则数据会乱;

2,new PageInfo出来的总条数不正确,和list的一致

原因应该是第一个list中包含查出来的总条数,而重新换取新的list中不包含,如果实际业务中必须要使用新的list换取新的list,怎么办呢?看下面

@Override
    public PageInfo<SysUserVO> selectSysUserList(SysUser sysUser) {

        /** 获取分页*/
        PageDomain jsonPageDomain = TableSupport.buildPageRequest();
        Integer  pageNum = jsonPageDomain.getPageNum();
        Integer  pageSize = jsonPageDomain.getPageSize();
        if(pageNum==null || pageSize==null){
            throw new RuntimeException("未获取到分页参数值");
        }
        PageHelper.startPage(pageNum,pageSize);

        List<Sysuser> users= sysUserMapper.selectUserList(sysUser);
        PageInfo userInfo = new PageInfo<>(users);
       
        // 转换为VO
        List<SysUserVO> sysUserVOs= BeanUtil.copyToList(users, SysUserVO.class);

        // 将封装后的列表放到分页对象中
        userInfo .setList(sysUserVOs);

        return userInfo ;
    }
@GetMapping("/list")
    public TableDataInfo list(SysUser sysUser)
    {
        PageInfo<SysUserVO> list = sysUserService.selectSysUserList(sysUser);
        TableDataInfo rspData = new TableDataInfo();
        rspData.setCode(HttpStatus.SUCCESS);
        rspData.setMsg("查询成功");
        rspData.setRows(list.getList());
        rspData.setTotal(list.getTotal());
        return rspData;
    }

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值