JPQL では、これと同等のクエリを作成したいと思います。
select *, count(*) as finger_count from page_delta_summary
where delta_history_id = ? and change_type = ? group by fingerprint;
wherefingerprint
は table の 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" に対するクエリ "select d, count(d) from PageDeltaSummary d where d.deltaHistoryId = :deltaHistoryId and d.type = :pageDeltaType GROUP BY d.fingerprint" は無効です。 select 句と having 句には、グループ化句にも表示される集計または値のみを含める必要があります。
count(d) を finger_count として削除するか、GROUP BY を削除すると、クエリは正常に機能します。
助言がありますか?
ありがとう