Spring Boot JPA分页 PagingAndSortingRepository接口 中PageRequest方法和Sort方法的更新

Spring Boot JPA分页 PageRequest.of代替过时的PageRequest方法,Sort.by代替Sort方法

一、问题描述

最近在学习Spring Data Jpa数据持久层这一块知识的时候,在编些dao接口的单元测试类的时候会用到pageable排序和分页功能,发现在使用org.springframework.data.domain中的Sort的构造方法,和PageRequest的构造方法时,不能传入参数
Spring Boot JPA分页 PagingAndSortingRepository接口 中PageRequest方法和Sort方法的更新
运行测试方法之后,出现下面的错误
Spring Boot JPA分页 PagingAndSortingRepository接口 中PageRequest方法和Sort方法的更新
一开始以为是Maven导入的jar包有问题,没有导入完整的jar包,最后打开Sort和PageRequest的源码发现,使用构成方法的修饰符都是protected被保护,无法调用。
Spring Boot JPA分页 PagingAndSortingRepository接口 中PageRequest方法和Sort方法的更新
Spring Boot JPA分页 PagingAndSortingRepository接口 中PageRequest方法和Sort方法的更新
继续看发现源码中定义了Sort by的static(静态的方法)和PageRequest of 的static(静态方法)
Spring Boot JPA分页 PagingAndSortingRepository接口 中PageRequest方法和Sort方法的更新
Spring Boot JPA分页 PagingAndSortingRepository接口 中PageRequest方法和Sort方法的更新

二、解决方案

看到这里,终于了解了,以后要实现排序和分页功能的时候,不要用new Sort方法和new PageRequest()方法,而是直接调用Sort.by()方法和PageRequest.of方法。
Spring Boot JPA分页 PagingAndSortingRepository接口 中PageRequest方法和Sort方法的更新