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

Duas alternativas para deixar o código com menos ifs.

Ola, Tem duas abordagens que podem ser usadas para evitar os 2 ifs. uma é na query a outra usando um HashMap<String, Object>.

Usando a query assim evita usar if. "SELECT p FROM Pedido p where (p.nome=:nome or :nome is null) and (p.cliente=:cliente or :cliente is null) and (p.dataPedido=:dataPedido or :dataPedido is null)" dessa forma voce passa o parametros normalmente sem testar se estao nulos ou nao.

A outra forma é usando a estrategia ensinada na aula. Mas criando um var parametros = new HashMap<String, Object>();

assim em cada if de concatenacao voce faz parametros.put("cliente", cliente);

so final é so fazer um forEach para adicionar os parametros incluidos, eliminando a necessidade de se fazer outro 3 ifs

parametros.forEach((chave, valor) -> query.setParameter(chave, valor));

1 resposta
solução!

Oi Thiago!

Isso mesmo, tem outras alterrnativas para evitar os ifs. Num outro tópico foi discutido isso: https://cursos.alura.com.br/forum/topico-uso-do-is-null-na-jpql-242509

Bons estudos!