Seria interessante atualizar este curso informando que é possível utilizar o seguinte trecho de JPA para fazer um WHERE mais simples:
where (:nome IS NULL OR p.nome = :nome) AND (:VARIAVEL IS NULL OR p.VARIAVEL = :VARIAVEL) AND .... e por aí vai
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Seria interessante atualizar este curso informando que é possível utilizar o seguinte trecho de JPA para fazer um WHERE mais simples:
where (:nome IS NULL OR p.nome = :nome) AND (:VARIAVEL IS NULL OR p.VARIAVEL = :VARIAVEL) AND .... e por aí vai
Mas aí, se, por exemplo, o nome for especificado, a query vai retornar os registros que sejam iguais ao que foi passado, bem como aqueles que são nulos, não?
pelo que eu uso aqui no trabalho, esse IS NULL é usado pela JPA para trazer tudo caso o atributo seja nulo, veja que o IS NULL se refere ao :nome e não ao p.nome
(:nome IS NULL OR p.nome = :nome)
isso significa:
se :nome for nulo, ignora o p.nome = :nome, se não, adiciona o p.nome = :nome na querie
Ah, verdade. Não tinha repadado que era
:nome IS NULLao invés de
p.nome IS NULLDe qualquer forma, não sabia que isso existia. Valeu pela dica. Vou testar depois.
valeu! muito obrigado pela atenção!