Я хотел бы использовать дополнительную фильтрацию с Dropwizard / JDBI3.Я думал, что это можно сделать с помощью опций и SQL.У меня есть следующий запрос DAO:
@SqlQuery("SELECT t.tag_uuid as tag_uuid, t.name as name FROM tags t WHERE (:archived IS NULL OR :archived = t.archived)")
public List<Tag> fetchTags(@Define("cond") Optional<Boolean> archived);
}
Но эта функция заканчивается ошибкой, что запрос не может быть обработан.
Если JDBI 3 не поддерживает опциональные функции, как правильно добавлять динамические запросы или динамические условия.У меня также есть в этом запросе поле Textsearch и Order By's.
Я не хочу использовать шаблоны с UseStringTemplate3StatementLocator
, потому что этот параметр идет как параметр запроса в запросе, и мне нужно проверить наличие SQLInjection.
Каков официальный способ архивировать это?Также, если я хочу добавить динамический порядок по.Я думал о создании нескольких функций SQLQuery, но это не кажется очень эффективным, потому что со всеми фильтрами и заказами и их комбинациями я получаю 10 различных функций.