【发布时间】:2015-08-14 02:37:01
【问题描述】:
我有一个显示一些 cmets 的应用程序。现在我想按创建时间 asc 对 cmets 进行排序,但我想将最新的 cmets 显示为默认值。
我是这样做的:
public Page<Comment> getComments(@PageableDefault(value = 15, sort = { "createdTime" }, direction = Sort.Direction.ASC)
Pageable pageable) {
return commentRepository.findAll(pageable);
}
现在只能默认获取第一页,怎么才能默认获取最后一页?
【问题讨论】:
-
还有,为什么不能按降序排序并取第一页?
-
因为我们希望评论按 createdTime asc 排序。大多数时候,我们是从头到尾读取cmets,有时我们想直接看到最后一页
-
然后,将排序顺序也传递给该方法。使用您接受的答案,您将运行两个单独的查询,而如果您按降序排序并获取第一页,则可以只使用一个查询。
-
如果我总共有 15 个 cmets,页面大小为 10。第一页大小为 10,最后一页大小为 5。如果我只是降序排序并取第一页,我将得到最后一页page.which 有 10 个 cmets。显然我不想那样。
标签: java spring jpa pagination spring-data-jpa