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

Moh*_*ris 10 java hibernate jpa spring-data-jpa pageable

如何Pageable仅使用排序信息将对象传递给 Spring JPA Repository?我想要这样的东西:

Pageable pageable = PageRequest.of(null, null, Sort());
Run Code Online (Sandbox Code Playgroud)

我知道它需要intaspagesize但是如果我们不能以某种方式使用这些值并给出一个未分页的结果

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

我们可以对页面和大小使用像1000,这样的大数字,1000但我不想对这些值进行硬编码。

我也不打算为Pageable.

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

提前致谢。

gpe*_*che 7

根据Spring Data JPA 当前版本的文档,您可以Sort直接将 a 传递给查询方法,因此您可以拥有同一查询方法的两个版本:

  • 一个人收到一个Pageable,当你有“满”时使用Pageable
  • 另一个接收Sort, ,用于当您只想执行排序时使用。

  • 这是一个不错的选择,在存储库类中有两个方法。但是,如果我只想有一个以 `Pageable` 作为参数的方法怎么办?是否可以只使用Pageable来实现排序? (3认同)
  • @MohammedIdris 好吧,“Pageable”是一个接口,因此您始终可以自己实现。我想您可以使用“org.springframework.data.domain.Unpaged”作为指南,并提供一个类似的实现来存储“Sort”并通过“getSort”返回它。无论如何,如果您不想进行分页,您应该考虑为什么要传递“Pageable”。 (2认同)
  • 真的你不能。一旦提供了 **isPaged=false** 的 **Pageable**,Pageable 中的信息就不会被 **SimpleJpaRepository** 类使用。如果您想始终使用 **Pageable**(因此使用 **Sort** 信息),唯一的替代方法是创建一个新的 **Integer.MAX_VALUE** 作为页面大小。 (2认同)