Duvida no criteria API

Bom dia a todos, estou aprendendo agora a utilizar o criteria api, tenho que fazer uma consulta que busca em três classe o resultado final, já começei mas axo, ou melhor tenho certeza q está faltando dizer ao metodo o qu ele tem q fazer. Esta busca precisa pegar o total de resultado, alguem pode ajuda.

public List<Resultado> findresultados(Comite comite, Municipio municipio, Coligacao coligacao, Short exercicio) {
        CriteriaBuilder cb = getEntityManager().getCriteriaBuilder();
        CriteriaQuery cq = cb.createQuery();
        Root<Resultado> resultado = cq.from(Resultado.class);

        List<Predicate> predicados = new ArrayList<Predicate>();

        if (comite != null) {
            predicados.add(cb.equal(resultado.get("comite"), comite));
        }

        
        if (municipio != null) {
            predicados.add(cb.equal(julgamento.get("municipio"), municipio));
        }
         if (coligacao != null) {
            predicados.add(cb.equal(julgamento.get("partido"), partido));
        }
        if (exercicio != null) {
            predicados.add(cb.equal(julgamento.get("exercicio"), exercicio));
        }
        
        cq.where(cb.and(predicados.toArray(new Predicate[]{})));
        return getEntityManager().createQuery(cq).getResultList();

será se estou indo no rumo certo?

obrigado

Só pra saber, você está usando Criteria do JPA porque quer aprender? Ou é em um projeto real mesmo? Porque ela não é muito recomendada (Claro que se quiser usar pode usar, cada um usa o que preferir), mas eu particularmente acho ela muito verbosa, e prefiro fazer as coisas com JPQL.

E em relação a sua dúvida, não entendi ela, cara… O que que você precisa buscar? Tem como explicar melhor?

projeto real, preciso desenvolver um modulo de consulta para o sistema web que ja existe, to usando o criteria api do JPA. Quero encontrar uma forma melhor de buscar o total de resultados(aprovados, desaprovados, aprovados com ressalvas) o banco já existe certo. As classes foram geradas pelas tabelas do banco de dados, ja tenho a tela de consulta no view, ja fiz os beans, agora falta implementar a consulta no manager, onde preciso buscar o total de resultado. as classes são(Comite, Resultado, Coligacao, Municipio), fui orientado para usar criteria.
Objetivo: mostrar o total de resultado aprovados, reprovados, aprovados com ressalvas, sendo que preciso buscar isso nestas tabelas do banco dentro meu meu DAO,

Desculpa se não fui claro

public List<Resultado> findresultados(Comite comite, Municipio municipio, Coligacao coligacao, Short exercicio) {     
        CriteriaBuilder cb = getEntityManager().getCriteriaBuilder();     
        CriteriaQuery cq = cb.createQuery();     
        Root<Resultado> resultado = cq.from(Resultado.class);     
     
        List<Predicate> predicados = new ArrayList<Predicate>();     
     
        if (comite != null) {     
            predicados.add(cb.equal(resultado.get("comite"), comite));     
        }     
     
             
        if (municipio != null) {     
            predicados.add(cb.equal(resultado.get("municipio"), municipio));     
        }     
         if (coligacao != null) {     
            predicados.add(cb.equal(resultado.get("coligacao"), coligacao));     
        }     
        if (exercicio != null) {     
            predicados.add(cb.equal(jresultado.get("exercicio"), exercicio));     
        }     
             
        cq.where(cb.and(predicados.toArray(new Predicate[]{})));     
        return getEntityManager().createQuery(cq).getResultList();    

os if sao para quando o usuario fazer a seleçao de algum campo da tela de conslulta

[quote=digaoneves]Só pra saber, você está usando Criteria do JPA porque quer aprender? Ou é em um projeto real mesmo? Porque ela não é muito recomendada
[/quote]

Mal recomendada não,ela é PORCA mesmo :smiley:

Prefiro mil vezes as Restrictions do Hibernate.

[quote=raf4ever][quote=digaoneves]Só pra saber, você está usando Criteria do JPA porque quer aprender? Ou é em um projeto real mesmo? Porque ela não é muito recomendada
[/quote]

Mal recomendada não,ela é PORCA mesmo :smiley:

Prefiro mil vezes as Restrictions do Hibernate.[/quote]

e como ficaria no JPQL?