关于JPA使用Page和pageable实现分页查询数据库的理解

首先JPA规定了可以通过传入pageable对象来查询分页数据,返回类型为Page<T>

Page<T>带有附加信息的Slice,例如结果的总数。需要一个Pageable方法参数。

它官网的原话是

Page<T>

A page is a sublist of a list of objects.

我的理解就是相当于一个list容器,用来存储JavaBean

它继承了这些父接口

Iterable<T>, Slice<T>, Streamable<T>, Supplier<Stream<T>>

其中最重要的就是 Slice<T>这个接口,他有下面这样一个接口函数

List<T>getContent()

Returns the page content as List.

这意味着你可以通过getcontent的方法来获得Page对象中对应的list,也就是可以像对普通list一样来操作他。当然还可以调用slice的许多函数,例如getnumber()获取当前页等等。

Page对象讲完了。

那么这个pageable对象呢?

Pageable

Abstract interface for pagination information.

也就是说它是对分页属性的描述。

它有一些继承这个接口的Javabean,其中最重要的就是AbstractPageRequest,这是一个抽象javabean继承

public abstract class AbstractPageRequest
extends Object
implements Pageable, Serializable

Abstract Java Bean implementation of Pageable.

而AbstractPageRequest的构造器:

AbstractPageRequest(int page, int size)

Creates a new AbstractPageRequest.

这意味着你可以通过指定page(当前页码),size(分页大小)来控制Pageable的属性。所以当你在spring或者springboot的前端想要传递分页信息的时候,你可以传递page,size的值,spring会自动帮你封装成pageable对象想后端传递。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值