1
resposta

Spring Data/JPA - Como validar diversos filtros na consulta?

Estou querendo resolver um problema, já encontrei implementações com 'specifications' do JPA, porém eu não sei se ele aceita relações como JOINS etc..

Eu quero montar uma consulta através do JPA, essa consulta poderá ter N campos como filtro de busca, porém queria fazer de uma forma que eu não precise toda hora montar vários if's, pensando também que essa mesma consulta no futuro terá JOIN etec..

Segue abaixo a consulta que está sendo feito até o momento...

@Query(value = "SELECT v FROM VideoGTVEntity v WHERE (v.dataVideoGtv BETWEEN :startDate AND :endDate)"
            + " AND v.gtv = :gtv")
    Page<VideoGTV> findAllWithFiltersWithJPA(
            @Param("startDate") Date startDate,
            @Param("endDate") Date endDate, 
            @Param("gtv") Long gtv,
            Pageable paginacao);

Porém se eu não enviar o GTV ele não retorna nada na consulta, pois ele não entende que caso o GTV seja null/vazio ele não deveria colocar a clausula AND.

Existe soluções para consultar com muitos filtros usando JPA + Pageable?

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
1 resposta

Você vai ter que utilizar alguns ifs para montar essa consulta