CASE Statement без @Query Spring JPA MYSQL - PullRequest
1 голос
/ 21 мая 2019

Можно ли использовать оператор 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 его обработать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...