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