Ham*_*med 1 java spring spring-data-jpa
我有一个Spring Boot应用程序,它具有这样的存储库。
public interface EmployeeRepository extends CrudRepository<Employee, Long> {
List<Employee> findTop3ByOrderBySalaryDesc();
}
Run Code Online (Sandbox Code Playgroud)
findTop3ByOrderBySalaryDesc在上面的功能中,找到薪水最高的前3名员工。在此示例中,是否可以动态指定雇员人数?例如,是否可以为此函数分配一个整数参数来确定员工人数?
您可以将Pageable对象用作参数,而不是“ Top”关键字。例如
public interface EmployeeRepository extends CrudRepository<Employee, Long> {
List<Employee> findAllByOrderBySalaryDesc(Pageable pageable);
}
Run Code Online (Sandbox Code Playgroud)
然后,您需要调用该方法,并请求一个最多包含N个元素的首页。例如,找到前100个元素的首页:
List<Employee> list = repo.findAllByOrderBySalaryDesc(PageRequest.of(0, 100));
Run Code Online (Sandbox Code Playgroud)
您也可以使用“ findAll”方法并在调用期间指定自定义顺序:例如
List<Employee> list = repo.findAll(PageRequest.of(0, 100, Sort.by(Sort.Direction.DESC, "salary")));
Run Code Online (Sandbox Code Playgroud)
看一下这些教程: