1
resposta

Não redenriza os livros na página após pesquisa

Eu escrevi o código na classe ProdutoDAO e quando vou fazer uma seleção pelos filtros não funciona, a página fica em branco e não aparece nenhum livro.

Segue o código:


public List<Produto> getProdutos(String nome, Integer categoriaId,
            Integer lojaId) {

        CriteriaBuilder criteriaBuilder = em.getCriteriaBuilder();
        CriteriaQuery<Produto> query = criteriaBuilder
                .createQuery(Produto.class);
        Root<Produto> root = query.from(Produto.class);

        Path<String> nomePath = root.<String> get("nome");
        Path<Integer> categoriaPath = root.join("categorias").<Integer> get("id");
        Path<Integer> lojaPath = root.<Loja> get("loja").<Integer> get("id");

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

        if (!nome.isEmpty()) {
            Predicate nomeIgual = criteriaBuilder.like(nomePath, "%" + nome + "%");
            predicates.add(nomeIgual);
        }

        if (categoriaId != null) {
            Predicate categoriaIgual = criteriaBuilder.equal(categoriaPath,
                    categoriaId);
            predicates.add(categoriaIgual);
        }

        if (lojaId != null) {
            Predicate lojaIgual = criteriaBuilder.equal(lojaPath, lojaId);
            predicates.add(lojaIgual);
        }

        query.where((Predicate[]) predicates.toArray(new Predicate[0]));

        TypedQuery<Produto> typedQuery = em.createQuery(query);

        return typedQuery.getResultList();

    }

Já reinicei o servidor, usei o clean e mesmo assim nada adiantou, toda ajuda é bem vinda.

Att, Pedro

1 resposta

Bom dia Pedro, posso te pedir uma coisa? Coloca um ponto de debug no começo do método só para vermos primeiro se não estão indo dados nulos