是否可以在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处理呢?