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(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();