В 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: Ваш запрос на тип "class com.su3analytics.sitedelta.model.PageDeltaSummary" с фильтром "выберите d, count (d) из PageDeltaSummary d, где d.deltaHistoryId =: deltaHistoryId и d.type =: pageDeltaType GROUP BY d.fingerprint "недопустимы. Ваши предложения select и Имеющие должны включать только агрегаты или значения, которые также появляются в вашем предложении группировки.
Запрос работает нормально, если я уберу count (d) в качестве finger_count или GROUP BY.
Есть предложения?
Спасибо