PageRequest构造函数已被弃用。

68

我正在使用 Spring Data Commons v2+ 快照版,并且发现 PageRequest 的构造方法已被弃用。这似乎是在 M1M2 之间发生的。不幸的是,这是实现Pageable接口的唯一[真正]方式。我想知道这个努力的方向,并且对于当前的开发有什么更好的替代方案。


它也出现在[M3]http://docs.spring.io/spring-data/commons/docs/2.0.0.M3/api/org/springframework/data/domain/PageRequest.html#constructor.summary。 - KostasC
4个回答

202

只是构造函数已被弃用。请使用

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

现在你可以使用

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

就是这样。


3
Spring Boot 2.0.0.RC1例如:Page<Ccy> currencyList = ccyRepository.findAll(PageRequest.of(evalPage, evalPageSize)); - Raphaël Colantonio
自Spring v2.0以来,使用静态的PageRequest::of方法而不是构造新的PageRequest实例。更多信息请参见https://docs.spring.io/spring-data/commons/docs/current/api/org/springframework/data/domain/PageRequest.html。 - Yurii Rabeshko
我想知道为什么Spring Data参考文档在示例中仍然使用已弃用的构造函数,尽管它们已经被弃用了一年多。 - Nima Ajdari
如果之前你没有传入Sort实例来调用构造函数,这个方法也可以正常工作。 - Roger
是的,我想知道为什么javadoc没有说明废弃原因,也没有提到新的工厂方法。 - Christian

13

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


11
您可以使用以下解决方案来解决您的问题:
Page<User> users=userService.findByUserType(id,PageRequest.of(1, 3));

4
请解释为什么这会解决问题。 - georgeawg

3
自从Spring v2.0版本以来,PageRequest.of()成为了一个静态方法,你不需要构造一个new PageRequest()实例。
使用这个静态方法来创建一个新的未排序的PageRequest
PageRequest.of(int page, int size)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接