Передача числового параметра из метода, который будет добавлен после 'top' или 'first', например: findTop [paramValue] By - PullRequest
0 голосов
/ 02 июля 2019

Мне интересно, можно ли передать параметр в методы данных jpa

@Entity
public class Employee {
private @Id
@GeneratedValue
Long id;
private String name;
private String dept;
private int salary;
.............
}


public interface EmployeeRepository extends JpaRepository<Employee, Long> 
{

  List<Employee> findTop3ByOrderBySalaryDesc();

}

Передать ограничение в качестве параметра, гарантирующего запись:

   List<Employee> findTop3ByOrderBySalaryDesc();

я хочунаписать общий метод, подобный этому, и передать myLimit в качестве параметра:

   List<Employee> findTop<myLimit>ByOrderBySalaryDesc();

1 Ответ

1 голос
/ 02 июля 2019

Вы можете сделать это, добавив аргумент Pageable к методу и удалив часть Top запроса. Pageable также должен содержать информацию, по которой производится сортировка. Таким образом, вы в конечном итоге:

List<Employee> findBy(Pageable limit)

Чтобы это выглядело лучше, вы можете создать статический метод построения PageRequest

static Pageable topSalaries(int limit) {
    return PageRequest(0, limit, DESC, "salary");
}

Так что вызов будет выглядеть так:

findBy(topSalaries(5));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...