【发布时间】:2018-03-31 11:07:09
【问题描述】:
我有一个分页索引从 1 开始的服务。经过一些逻辑后,我得到了实体列表,我返回如下相同(响应)
totalCount = responses.size();
return new PageImpl<>(responses, pageable, totalCount);
和当我请求第一页时为
new PageRequest(1, 100)
我得到了回复
{"content": [
{
"id": "e1",
}{
"id": "2",
}
],
"last": false,
"totalElements": 102,
"totalPages": 2,
"size": 100,
"number": 1,
"sort": null,
"first": true,
"numberOfElements": 2
}
即使我有 "numberOfElements": 2 我也会返回 "totalElements": 102
我发现的问题是因为 PageImpl 中的 pageable.getOffset() 计算
this.total = !content.isEmpty() && pageable != null && pageable.getOffset()
+ pageable.getPageSize() > total
? pageable.getOffset() + content.size() : total;
在我的第一页场景中,我的偏移量为 100 (1*100)。我该如何解决这个问题。
注意:我使用第三方服务来获取索引为 1 的响应。所以我试图让我的服务与此保持一致,以便整个逻辑遵循相同的索引。
【问题讨论】:
-
如果有任何用途,您可以将 Spring Data 配置为在第一页使用 1 而不是 0,如下所述:stackoverflow.com/questions/27032433/…
标签: spring mongodb spring-boot spring-data spring-data-jpa