В JPQL я хочу построить эквивалентный запрос:
select *, count(*) as finger_count from page_delta_summary
where delta_history_id = ? and change_type = ? group by fingerprint;
где fingerprint
— это поле varchar в таблице page_delta_summary
. У меня есть это:
select d, count(d) as finger_count from PageDeltaSummary d
where d.deltaHistoryId = :deltaHistoryId and d.type = :pageDeltaType
GROUP BY d.fingerprint"
где PageDeltaSummary
— моя сущность. Но я получаю следующее исключение:
org.apache.openjpa.persistence.ArgumentException: ваш запрос по типу «класс com.su3analytics.sitedelta.model.PageDeltaSummary» с фильтром «выберите d, count (d) из PageDeltaSummary d, где d.deltaHistoryId = :deltaHistoryId и d.type = :pageDeltaType GROUP BY d.fingerprint" недействителен. Ваши предложения выбора и наличия должны включать только агрегаты или значения, которые также появляются в вашем предложении группировки.
Запрос работает нормально, если я удаляю count(d) как finger_count или GROUP BY.
Какие-либо предложения?
Спасибо