我遇到了以下问题,也许有人可以帮助我。
我写了一个SQL查询:
SELECT v.bezeichnung, count(*) as total
FROM veranstaltung v
JOIN auffuehrung a ON v.id = a.veranstaltung_id
JOIN platz p ON p.auffuehrung_id = a.id
JOIN transaktion t ON t.id = p.transaktion_id
WHERE t.status = 2 AND (a.datumuhrzeit + 30 DAY) >= CURRENT_DATE
GROUP BY v.bezeichnung
ORDER BY total DESC
我必须在JPA中实现它,但一切都可以工作,除了GROUP BY ......它不能被分组..
CriteriaBuilder builder = this.entityManager.getCriteriaBuilder();
CriteriaQuery<Veranstaltung> query = builder.createQuery(Veranstaltung.class);
Root<Veranstaltung> rootVeranstaltung = query.from(Veranstaltung.class); query.where(builder.equal(rootVeranstaltung.join("auffuehrungen").join("plaetze").join("transaktion").<Transaktionsstatus>get("status"), Transaktionsstatus.BUCHUNG));
query.groupBy(rootVeranstaltung);
List<Veranstaltung> result = this.entityManager.createQuery(query).getResultList();
return list;
我还没有完成代码,例如COUNT ..
我应该在COUNT
之前写GROUP BY
还是在没有COUNT
的情况下写一下?