JPA Criteria Group By

时间:2013-05-24 02:34:53

标签: java

我遇到了以下问题,也许有人可以帮助我。

我写了一个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的情况下写一下?

0 个答案:

没有答案