在JPQL中,我想构造与此等效的查询:select *, count(*) as finger_count from page_delta_summarywhere delta_history_id = ? and change_type = ? group by fingerprint;其中,fingerprint是表page_delta_summary中的varchar字段。我所拥有的是:select d, count(d) as finger_count from PageDeltaSummary dwhere d.deltaHistoryId = :deltaHistoryId and d.type = :pageDeltaTypeGROUP BY d.fingerprint"其中PageDeltaSummary是我的实体。但是我收到以下异常: org。 =::pageDeltaType GROUP BY d.fingerprint“无效。您的select和have子句必须仅包括也出现在分组子句中的聚合或值。如果我删除count(d)作为finger_count或GROUP BY,则查询工作正常。有什么建议么?谢谢 最佳答案 您原始的SQL查询没有任何意义,因此您不能转换为JPQL。我想您想获取每个page_delta_summary满足where条件的fingerprint行的计数。如果是这样,SQL查询如下所示:select fingerprint, count(*) as finger_count from page_delta_summarywhere delta_history_id = ? and change_type = ? group by fingerprint;和JPQL-像这样:select d.fingerprint, count(d) from PageDeltaSummary dwhere d.deltaHistoryId = :deltaHistoryId and d.type = :pageDeltaTypeGROUP BY d.fingerprint这些查询返回对,>,而不是完整的fingerprint行(或实体)。 10-08 06:14