Java Spring数据';s Pageable采用页码还是查询偏移量?

Java Spring数据';s Pageable采用页码还是查询偏移量?,java,spring,jakarta-ee,spring-data,Java,Spring,Jakarta Ee,Spring Data,我使用的是spring数据jpa1.1.0.M1现在我们使用的是更高的版本,由于spring数据公用程序的原因,spring数据mongodb出现了问题。因此,我们在服务中使用实体管理器进行某些查询,包括带有偏移量和限制的查询 既然我们已经降级了,而且一切似乎都很好,我们希望在数据访问方面将一切都保持在存储库级别,并在服务中的业务逻辑方面做很多工作 由此我了解到,pageable interface是我所需要的。但是实现类接受page参数。这是否意味着我的偏移量变为以下值 offset = pa

我使用的是
spring数据jpa1.1.0.M1
现在我们使用的是更高的版本,由于
spring数据公用程序
的原因,spring数据mongodb出现了问题。因此,我们在服务中使用实体管理器进行某些查询,包括带有
偏移量
限制的查询

既然我们已经降级了,而且一切似乎都很好,我们希望在
数据访问方面将一切都保持在存储库级别,并在服务中的业务逻辑方面做很多工作

由此我了解到,
pageable interface
是我所需要的。但是实现类接受
page
参数。这是否意味着我的
偏移量
变为以下值

offset = page* limit; => page = offset/limit; 
我说得对吗?
感谢阅读。

PageRequest对象有一个接受页面和大小的构造函数。其他构造函数允许您指定其他细节,例如排序方向

new PageRequest(int page, int size) 
请参见:

PageRequest
作为参数传递给存储库中的一个find方法。在下面的例子中,我得到了我博客的前五个条目

@RequestMapping("/")
public String blog(Model model) {
    Sort sort = new Sort(Direction.DESC, "postId");
    model.addAttribute("posts",
            postViewRepository.findAll(new PageRequest(0, 5, sort))
                    .getContent());
    model.addAttribute("tease", true);
    return "blog/blog";
}
在本例中,对repositories
findAll(PageRequest)
方法的调用返回一个
org.springframework.data.domain.Page
对象。
Page
对象包含几个方便的方法,允许检索有关底层结果集的信息,例如页面大小和数量

请参见:


考虑到这些方便的功能,我不确定您是否需要管理偏移量或当前页面,因为Spring数据正在为您执行这项工作。

Spring使用的页码范围为1-n

要获得前五个结果,请使用

new PageRequest(1, 5);
new PageRequest(2, 5);
要获得接下来的五个结果,请使用

new PageRequest(1, 5);
new PageRequest(2, 5);

页面索引不应与以前结果的偏移量混淆。

您没有回答以下问题:new PageRequest(0,5,sort)是否意味着偏移量为零的结果并返回下一个5个结果,或者这是返回页码0和5个结果。如果我想要数据库项2,4,5,6,7,8,PageRequest是什么?新页面请求(2,5)?错误。页面索引为零,因此为页面提供0将返回第一页。