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

Correção no método

Prezado professor Rodrigo Ferreira,

No método buscarPorParemetros() que é proposto a busca de Produto por parâmetros opcionais, dentro dos IFs o valor da variável "jpql" está sendo substituído com os ANDs deixando a query errada. Vou deixar a sugestão da correção caso alguém precise.

```public List<Produto> buscarPorParemetros(String nome, BigDecimal preco, LocalDate dataCadastro) {
        String jpql = " SELECT p FROM Produto p WHERE 1=1 ";            
        if (nome != null && !nome.trim().isEmpty()) {
            jpql = jpql.concat(" AND p.nome = :nome ");
        }
        if (preco != null) {
            jpql = jpql.concat(" AND p.preco = :preco ");
        }
        if (dataCadastro != null) {
            jpql = jpql.concat(" AND p.dataCadastro = :dataCadastro ");
        }            
        System.out.println(jpql);            
        TypedQuery<Produto> query = em.createQuery(jpql, Produto.class);            
        if (nome != null && !nome.trim().isEmpty()) {
            query.setParameter("nome", nome);
        }
        if (preco != null) {
            query.setParameter("preco", preco);
        }
        if (dataCadastro != null) {
            query.setParameter("dataCadastro", dataCadastro);
        }

    return query.getResultList();

}```

Atenciosamente.

1 resposta
solução!

Oi Elderlan,

Verdade, acabou que na gravação do vídeo não me atentei a esse detalhe.

Mas no código da aplicação, disponibilizado as aulas, está com o ajuste já efetuado.

Valeu pelo feedback.

Bons estudos!