【问题标题】:PageRequest constructors have been deprecatedPageRequest 构造函数已被弃用
【发布时间】:2017-12-04 13:02:18
【问题描述】:

我正在处理 Spring Data Commons v2+ 快照,我看到 PageRequest 的构造函数已被弃用。这似乎发生在M1M2 之间。不幸的是,这是Pageable 接口的唯一[真正] 实现。我想知道努力的方向,以及对于当前的开发有什么更好的选择。

【问题讨论】:

标签: java spring spring-data spring-data-commons


【解决方案1】:

Spring v2.0 起: PageRequest.of() 是静态方法,不需要构造new PageRequest() 实例。

使用这个静态方法来创建一个新的未排序的PageRequest

PageRequest.of(int page, int size)

【讨论】:

    【解决方案2】:

    我们可以使用PageRequest.of(offset, limit) 代替new PageRequest(offset, limit)。 在这种情况下,我们不需要使用已弃用的构造函数。

    【讨论】:

      【解决方案3】:

      您可以使用以下解决方案来解决您的问题:

      Page<User> users=userService.findByUserType(id,PageRequest.of(1, 3));
      

      【讨论】:

      • 请解释为什么这样可以解决问题。
      【解决方案4】:

      只是已弃用的构造函数。而不是

      new PageRequest(firstResult, maxResults, new Sort(...))
      

      你现在可以使用

      PageRequest.of(firstResult, maxResults, Sort.by(...))
      

      就是这样。

      【讨论】:

      • Spring Boot 2.0.0.RC1,例如:Page&lt;Ccy&gt; currencyList = ccyRepository.findAll(PageRequest.of(evalPage, evalPageSize));
      • 从 Spring v2.0 开始使用静态 PageRequest::of 方法而不是构造一个新的 PageRequest 实例。查看更多docs.spring.io/spring-data/commons/docs/current/api/org/…
      • 我想知道为什么 Spring Data 引用仍然使用示例中已弃用的构造函数,因为它们已被弃用一年多。
      • 如果您之前没有传入 Sort 实例的构造函数,这也将起作用。
      • 是的,我想知道为什么 javadoc 没有说明弃用原因,也没有提及新的工厂方法。
      猜你喜欢
      • 1970-01-01
      • 2017-05-02
      • 2013-10-28
      • 2021-09-10
      • 1970-01-01
      • 2023-03-30
      • 2015-07-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多