Можно ли использовать оператор CASE в SPRING JPA без явного определения всего запроса в @Query Annotation.У меня большой запрос:
select m.a, m.b, m.c from Messages m Inner Join Replies r
on m.message_id = r.message_id
where
m.message_to = CASE WHEN :#{#filter.messageTo} IS NULL THEN m.messageTo ELSE :#{#filter.messageTo} END and
m.txt_mode = CASE WHEN :#{#filter.textMode} IS NULL THEN m.txt_mode ELSE :#{#filter.textMode} END
order by date desc, messageTo, message_id desc limit 100
Можно ли как-то сформулировать вышеуказанный запрос, используя аннотации или имена методов, такие как: findAllbyMessageToDescAndTextModeDescLimit100(Filters)
для оператора CASE?Кроме того, у меня более 10 фильтров, добавляющих все в метод, сделало бы метод очень длинным. Есть ли способ уменьшить это, а не просто жестко закодировать весь запрос в аннотации @Query и позволить JPA его обработать?