Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Busca do Like não está funcionando

public List getProdutos(String nome, Integer categoriaId, Integer lojaId) { CriteriaBuilder criteriaBuilder = em.getCriteriaBuilder(); CriteriaQuery query = criteriaBuilder.createQuery(Produto.class); Root root = query.from(Produto.class);

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

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

    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();
1 resposta
solução!

PROBLEMA COM A Tabela produto categoria

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software