Estou utilizando o @Query no meu repository, porem preciso utilizar um IF pra validar um valor nulo, tipo, se ofr traz todos se nao for traz exatamento o id que estou passando. Como uso o IF com jpql nesse @Query ?
Estou utilizando o @Query no meu repository, porem preciso utilizar um IF pra validar um valor nulo, tipo, se ofr traz todos se nao for traz exatamento o id que estou passando. Como uso o IF com jpql nesse @Query ?
Olá! Tudo bem?
Para utilizar o IF em uma consulta JPQL no Spring Boot, você pode utilizar a função CASE WHEN
. Por exemplo:
@Query("SELECT e FROM Entidade e WHERE e.campo = CASE WHEN :parametro IS NULL THEN e.campo ELSE :parametro END")
List<Entidade> minhaConsulta(@Param("parametro") Tipo parametro);
Nesse exemplo, a consulta irá retornar todos os registros da entidade Entidade
que possuem o valor do campo igual ao parâmetro parametro
, caso ele não seja nulo. Caso o parâmetro seja nulo, a consulta irá retornar todos os registros da entidade.
Espero ter ajudado e bons estudos!