#group-by #case #openjpa #named-query
Вопрос:
Мы получаем синтаксическую ошибку в предложении group by при использовании оператора group by с регистром в именованных запросах JPA. Мы используем openjpa. Запрос выглядит так(идентификаторы-это список в упомянутом запросе)
выберите r.город,случай, когда r.name=»тест», затем «T», иначе «N» заканчивается как выбор из проверяемого r, где r.id в группе (:идентификаторы) по городу р.,случай, когда r.name=»тест», затем «T», иначе «N» заканчивается
Комментарии:
1. Покажите ошибку, и вы, возможно, захотите упростить вещи, опробовав их; если вы знаете, что :IDS работает, создайте простой запрос, который не нуждается в фильтрации по списку, чтобы мы/вы могли сосредоточиться на группе по логике. Или попробуйте выполнить запрос без группы по и т. Д.
Ответ №1:
Попробуйте что-нибудь вроде:
String jpqlQueryString = "select r.city,"
" case when r.name='test' then 'T' else 'N' end as opt "
" from testable r "
" group by r.city, opt";
Это должно сработать, а затем вы можете добавить критерии для фильтрации.
Комментарии:
1. Мы попытались выполнить приведенный выше запрос, он показывает, что запрос недействителен, ваши предложения select и having должны включать только агрегаты или значения, которые отображаются в вашем предложении группировки. Я предполагаю, что псевдоним для описания случая, вызывающего проблему.