Como fazer um group by com having no criteria?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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