Как использовать Спецификацию в пользовательских методах в JPA Repository - PullRequest
0 голосов
/ 04 октября 2019

Допустим, у меня есть этот метод поиска в хранилище:

@Query(value = "SELECT t.a, t.b, t.c, t.d, t.e from Table t where t.a= :param1 and t.e= :param2")
Page<MyObject> search(Long param1, Long param2, Pageable pageable);

Я хочу применить Спецификацию к этому методу следующим образом:

@Query(value = "SELECT t.a, t.b, t.c, t.d, t.e from Table t where t.a= :param1 and t.e= :param2")
Page<MyObject> search(Long param1, Long param2, Specification specification, Pageable pageable);

Возможно ли это сделать? Потому что я уверен, что Спецификация может применяться только к методам Spring по умолчанию (findAll).

1 Ответ

1 голос
/ 04 октября 2019

Правильный ответ - нет. Согласно JpaSpecificationExecutor вы можете использовать объект спецификации со следующими методами:

findOne(@Nullable Specification<T> spec);
findAll(@Nullable Specification<T> spec);
findAll(@Nullable Specification<T> spec, Pageable pageable);
findAll(@Nullable Specification<T> spec, Sort sort);
count(@Nullable Specification<T> spec);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...