分页查询Page的getSize与getTotalElements使用对比

    开始用到SpringData分页,在跟着资料写项目的时候,看到分页的数量和返回的不一致。

一.使用Page.getSize

    @RequestMapping(value = "/search/{page}/{size}", method = RequestMethod.POST)
    public Result findSearch(@RequestBody Map searchMap,@PathVariable int page,@PathVariable int size) {
        Page<Label> pageList = labelService.findSearch(searchMap, page, size);
        PageResult pageResult = new PageResult<Label>(pageList.getTotalElements(), pageList.getContent());// 资料中使用的是这种,Page.getTotalElements()
        return new Result(true, StatusCode.OK, "查询成功", pageResult);
    }

    分页结果:主要是total不同,这里的total不等于当前的rows的大小。

{
    "flag": true,
    "code": 20000,
    "message": "查询成功",
    "data": {
        "total": 9,
        "rows": [
            {
                "id": "3",
                "labelname": "C++",
                "state": "1",
                "count": null,
                "recommend": "2",
                "fans": null
            },
            {
                "id": "4",
                "labelname": "python",
                "state": "1",
                "count": null,
                "recommend": "2",
                "fans": null
            }
        ]
    }
}

 

二.使用Page.getTotalElements

    @RequestMapping(value = "/search/{page}/{size}", method = RequestMethod.POST)
    public Result findSearch(@RequestBody Map searchMap,@PathVariable int page,@PathVariable int size) {
        Page<Label> pageList = labelService.findSearch(searchMap, page, size);
        PageResult pageResult = new PageResult<Label>(Long.valueOf(pageList.getSize()), pageList.getContent());// 我自己修改后的,使用Page.getSize()
        return new Result(true, StatusCode.OK, "查询成功", pageResult);
    }

    我的分页结果:total的值等于rows的大小。

{
    "flag": true,
    "code": 20000,
    "message": "查询成功",
    "data": {
        "total": 2,
        "rows": [
            {
                "id": "3",
                "labelname": "C++",
                "state": "1",
                "count": null,
                "recommend": "2",
                "fans": null
            },
            {
                "id": "4",
                "labelname": "python",
                "state": "1",
                "count": null,
                "recommend": "2",
                "fans": null
            }
        ]
    }
}

 

    暂时先记录一下,两者的区别等项目完成后,看源码找答案。

转载于:https://my.oschina.net/javamaster/blog/2223100