Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Consulta com um objeto

Se eu tiver por exemplo uma classe Pessoa formada pelos atributos nome, status e natureza . como ficaria um get por exemplo de forma que o meu cliente possa pesquisar por um desses campos podendo haver combinações ? exemplo ele passar um json com Nome e natureza , ou com Natureza e status? vale lembra que no caso do nome deveria pesquisar por like

1 resposta
solução!

Oi Pedro,

Você pode receber todos os parâmetros no seu DTO como sendo opcionais e montar uma querie dinamica:

public class ConsultaPessoaForm {

    private String nome;
    private String status;
    private String natureza;

    //getters e setter
}
@RequestMapping("/pessoas")
public List<PessoaDto> consultaPorFiltros(ConsultaPessoaForm form) {
    List<Pessoa> pessoas = pessoaRepository.consultaPorFiltros(form.getNome(), form.getStatus(), form.getNatureza());

    // converter para dto e retornar a lista...
}
public interface PessoaRepository extends JpaRepository<Pessoa, Long> {

    @Query("SELECT p FROM Pessoa p WHERE (:nome IS NULL OR p.nome LIKE :nome) AND (:status IS NULL OR p.status LIKE :status) AND (:natureza IS NULL OR p.natureza LIKE :natureza)")
    List<Pessoa> consultaPorFiltros(String nome, String status, String natureza);
}

Bons estudos!