Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Filtros de pesquisa no API, query dinâmica

Olá, no curso fizemos um exemplo de receber um filtro de 'nome' que ser tiver preenchido chamo um método no repositório, caso contrário chamou outro método.

No caso, quando receber vários filtros e não sendo obrigatórios informar todos os filtros qual melhor alternativa de desenvolvimento? Teria como montar uma query dinâmica que montaria um where de acordo com os filtros informados?

3 respostas

Oi Tiago,

Para filtros opcionais você poderia ter uma classe Dao tradicional, injetando o EntityManager nela, para fazer a consulta dinâmica com if/else.

Ou então utilizar o esquema de Specification do Spring, que por baixo dos panos utiliza a API de Criteria da JPA. Só fica mais chatinho o código :D

Exemplos:

No caso, se essa consulta utilizar campos de outra entity (Join) vc acha melhor usar o Specification ou ainda seria possível utilizar um Dao. Nesse caso de usar o Dao, se for muito campos do filtro ficaria inviável fazer um if/else né?

solução!

Oi Tiago,

Vai acabar sendo uma escolha "difícil", pois com Dao tradicional o código vai ficar cheio de if/else, mas por outro lado com Specification o código fica meio confuso de entender :D

Avalie qual dos dois cenários te incomoda menos então.

Bons estudos!