Como fazer um group by com having no criteria?
Como fazer um group by com having no criteria?
Oi João, segue o exemplo meio solto, mas só para mostrar a funcionalidade:
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Object[]> query = cb.createQuery(Object[].class);
Root<Departamento> root = query.from(Departamento.class);
Join<Departamento,Professor> professores = root.join("professores");
query.multiselect(root.get("nome"),cb.count(professores)).groupBy(root.get("nome"));
Eu acho a api do criteria bem confusa, em geral acho que vale bem mais a pena mandar bala no JPQL direto.
Oi Alberto, se entendi bem esse código demonstra apenas um group by, gostaria de saber se é possível efetuar um having com o criteria. Ou algum tipo de where após o agrupamento ser realizado.
query.multiselect(root.get("nome"),cb.count(professores)).groupBy(root.get("nome")).having(cb.equal(root.get("tempoDeCasa"),2));
Legal!!! Obrigado =D