Я использую NativeQuery в своем репозитории, который извлекает данные из нескольких таблиц с помощью соединения, а также проверяет входные данные, отправленные пользователем в рамках запроса. Слой «Мой репозиторий» выглядит примерно так:
Код: Выделить всё
@Query(
value = "SELECT e.empname,c.countryName,r.RegionName
FROM Employee e,Country c, Region r
WHERE e.countryId=c.countryId
AND c.regionId=r.regionId
AND e.employeeId IN (:empIds)
AND c.countryId IN (:countryIds)
AND r.regionId IN (:regionIds)",
nativeQuery = true)
Collection findAllActiveUsersNative(CustomFilterRequest request,Pageable pageable);
Ниже приведен мой класс фильтра, который представляет собой списки идентификаторов, отправленных из пользовательского интерфейса, и этот список свойств класса должен быть отправлен на запрос для дальнейшей фильтрации.
Код: Выделить всё
class CustomFilterRequest{
List empIds,
List countryIds,
List regionIds,
}
Я знаю, что есть @Param, который можно использовать для отправки отдельных параметров запроса, но как отправить несколько параметров запроса, как в сценарии, упомянутом выше? Есть ли способ сопоставить свойства этого класса с параметрами запроса в NativeQuery @Query?