如何创建未分页但已排序的Pageable.of(unpaged, unpaged, Sort)到spring data jpa存储库?

问题描述 投票:0回答:3

如何将仅包含排序信息的

Pageable
对象传递到 Spring JPA 存储库? 我想要这样的东西:

Pageable pageable = PageRequest.of(null, null, Sort());

我知道它需要

int
作为
page
size
但如果我们可以以某种方式不使用这些值并仅用

给出未分页的结果

Sort.by(Sort.Direction.ASC, "age")

我们可以使用像

1000
1000
这样的高数字来表示页面和大小,但我不想对这些值进行硬编码。

我也不打算为

Pageable
创建自定义实现。

请让我知道如何实现这一目标。

提前致谢。

java hibernate jpa spring-data-jpa pageable
3个回答
7
投票

根据 当前版本 Spring Data JPA 的文档,您可以将

Sort
直接传递给查询方法,因此您可以拥有同一查询方法的两个版本:

  • 收到
    Pageable
    的人,当您拥有“完整”
    Pageable
    时使用。
  • 另一个收到
    Sort
    ,当您只想执行排序时使用。

0
投票

这是实现此目的的一种方法:

PageRequest.of(0, Integer.MAX_VALUE, Sort.by("age"));

它之所以有效,是因为 size 是一个整数。这不是最漂亮的解决方案,但我认为它比创建另一个函数更好。


-3
投票

如果您坚持使用现有查询,则可以在查询中传递

Pageable.unpaged()
,然后对结果进行排序 (
list.getContent().sort(Comparator.comparing(Item::getName))
)。

© www.soinside.com 2019 - 2024. All rights reserved.