没有@Query Spring JPA MYSQL的CASE语句

时间:2019-05-21 07:31:45

标签: sql jpa spring-data-jpa case

是否可以在SPRING JPA中使用CASE语句,而无需在@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多个过滤器,将所有内容附加到Method上会使方法变得很长,有什么办法可以减少这种情况,而不仅仅是在@Query注释中对整个查询进行硬编码并让JPA处理呢?

0 个答案:

没有答案