请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于分页Page类的问题

![图片描述
图片描述
师兄学到这后面我才大概懂分页大概是怎么一回事,但是我也有个问题:
图一生成了request的PageRequest(Pageable的实现类)对象,可是生成的这个request对象也只是代表查询当前页(只是一页)的功能吧,因为PageRequest的第一个参数是当前页,第二个参数是该页的数据条数。可是在调用orderService.findList()方法时,其中实现的是orderMasterRepository.findAll()这个函数,但findAll()方法不是查询的所有数据的条数吗?前者只是传过来的当前页的相关信息,而findAll()方法又是查的所有数据信息,有点迷—。---

正在回答

2回答

廖师兄 2019-09-04 00:32:40

你这个想法很对,这算是jpa的方法命名不够严谨吧。

findAll()   是查询所有

findAll(pageable)  是查分页

0 回复 有任何疑惑可以回复我~
  • 提问者 Simon___ #1
    嗯嗯。但师兄就算sevice层的findAll(Pageable)最后 return new PageImpl<>(orderDTOList, pageable, orderMasterPage.getTotalElements());返回的应该是查询一页的结果,可又有问题,在图二中调用这个findList(Pageable)方法得到的Page<OrderDTO> orderDTOPage=orderService.findList(request);其中orderDTOPage也应该只有当前页的数据吧,可是在list.ftl中1..orderDTOPage.getTotalPages(),师兄既然这么写了代表orderDTOPage.getTotalPages()应该是3,可既然为3,orderDTOPage得到的集合就应该是全部数据啊,这个和前面的逻辑不就相互冲突了,前者只是当前页的数据,而后面仔细想又是全部数据。。。。(:麻烦师兄了----
    回复 有任何疑惑可以回复我~ 2019-09-04 09:24:42
  • 廖师兄 回复 提问者 Simon___ #2
    可既然为3,orderDTOPage得到的集合就应该是全部数据啊。不冲突的,3是总数,不是当前页的数量。不然分页要怎么做呢?
    回复 有任何疑惑可以回复我~ 2019-09-05 15:48:39
  • 提问者 Simon___ 回复 廖师兄 #3
    师兄我是这么理解的(可能有点钻牛角尖=.=)
    PageRequest request=new PageRequest(page-1,size);
    Page<OrderDTO> orderDTOPage=orderService.findList(request);
    第二行代码传入的request这个PageRequest对象它只有当前页的信息啊,在new的时候第一个参数page-1代表当前页,第二个参数size代表每一页的页数。而第二行代码orderDTOPage通过这个只有一页信息的参数调用findList方法却查到了所有数据,这前后不就相互矛盾了嘛
    回复 有任何疑惑可以回复我~ 2019-09-05 16:15:15
提问者 Simon___ 2019-09-04 09:23:59

https://img1.sycdn.imooc.com//szimg/5d6f10a8098f867412210221.jpg

https://img1.sycdn.imooc.com//szimg/5d6f10a809416b3711460336.jpg

这是三张图https://img1.sycdn.imooc.com//szimg/5d6f10a809763e1511840272.jpg


0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信