Я бы хотел реализовать функцию расширенного поиска в моем приложении Spring Boot.
Поскольку я хочу следовать передовым практикам, я провел некоторое исследование по этой теме, но в итоге не получил никакого конкретного примера или решения.
Я читал о методе с использованием Predicate
, но не нашел подходящих объяснений.
Итак, я хочу, чтобы мои фильтры были необязательными, а также содержали массивы значений для запроса (например, Моя сущность User
содержит список Subject
сущностей, поэтому я хочу отправить массив Subject ids
)
Одна из вещей, которая пришла мне в голову, это отправить специальный DTO , включающий все возможные фильтры, и затем, со старыми добрыми операторами if, выполняющими всю остальную работу. (Проверка, не является ли фильтр нулевым, затем запросите его и т. Д.)
Насколько я знаю, этот метод не будет очень гибким и не будет относиться к категории передовой опыт .
Другой вариант, отправка набора параметров в URL, также не так благодарен. Или это?
Как реализовать слой DAO - не проблема, на данный момент меня интересуют только мои варианты, когда речь идет об отправке фильтров на мой REST Controllers
. Клиент, отправляющий запрос, записывается с ReactJS
.
Спасибо за ваше время.