gpt4 book ai didi

java - 在 Spring JPA Repository 的 findByTopN 中动态设置 N

转载 作者:行者123 更新时间:2023-11-29 06:48:33 25 4
gpt4 key购买 nike

我有一个 Spring Boot 应用程序,它有一个像这样的存储库。

public interface EmployeeRepository extends CrudRepository<Employee, Long> {
List<Employee> findTop3ByOrderBySalaryDesc();
}

上面的函数 findTop3ByOrderBySalaryDesc,找到薪水最高的前 3 名员工。在这个例子中有没有办法动态指定员 worker 数?例如,是否可以为此函数分配一个整数参数来确定员 worker 数?

最佳答案

您可以使用 Pageable 对象作为参数而不是“Top”关键字。例如

public interface EmployeeRepository extends CrudRepository<Employee, Long> {
List<Employee> findAllByOrderBySalaryDesc(Pageable pageable);
}

然后您需要调用该方法,请求第一页最多包含 N 个元素。例如查找前 100 个元素的第一页:

List<Employee> list = repo.findAllByOrderBySalaryDesc(PageRequest.of(0, 100));

您还可以使用“findAll”方法并在调用期间指定自定义顺序:例如

List<Employee> list = repo.findAll(PageRequest.of(0, 100, Sort.by(Sort.Direction.DESC, "salary")));

看看这个教程:

limiting query results

spring data jpa pagination and sorting

关于java - 在 Spring JPA Repository 的 findByTopN 中动态设置 N,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57549538/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com