Я пишу приложение, используя Spring Boot, Spring Data. И я пытаюсь реализовать функцию фильтрации на основе различных параметров фильтра.
Я обнаружил среду Spring Data REST, которая из коробки поддерживает базовые операции фильтрации, например:
/myEntities?field1=value1&field2=value2&sort=field2,desc&size=10&page=2
В этом случае мы просто фильтруем по 2 полям без каких-либо дополнительных предложений where.
Но что, если мне понадобится более сложный фильтр с другим количеством предложений where, order, limit для моих сущностей? Результирующий запрос может выглядеть примерно так:
SELECT * FROM table
WHERE field1 != `value1` and (field1 != ` value2 `OR (field1 = `value3` AND filed2 < 3))
AND field2 != 99
Можно ли достичь этой комбинации различных предложений where, используя встроенные функции Spring Data Rest (отправляя все эти вещи в виде параметров http)?