18 - Filtrar com o comando findBy()

Nessa décima oitava etapa do tutorial de criando APIs com Spring Boot, iremos filtrar dados utilizando o comando findBy().

O comando findBy() serve como se fosse o comando WHERE do SQL. Para compreender o seu uso, será necessário saber quais atributos estão disponíveis em nosso modelo. Neste tutorial temos os atributos:

  • Código
  • Nome
  • Idade

Sendo assim, temos os seguintes tipos de filtragem que podem ser realizadas:

  • findByCodigo(int codigo)
  • findByNome(String nome)
  • findByIdade(int idade)

Note que é utilizado o termo findBy, seguido do atributo do nosso modelo. Tome cuidado que o retorno pode ser de um único registro ou de vários, veja abaixo alguns exemplos:

  • Pessoa findByCodigo(int codigo); - O código é único, sendo assim apenas terá o retorno de um registro.
  • List findByNome(String nome); - Supondo que haja duas pessoas com o mesmo nome, deverá retornar uma lista de pessoas.

Lembre-se que o findBy equivale ao comando WHERE do SQL, então quando é realizada uma pesquisa por um nome por exemplo, será algo assim: SELECT * FROM tabela WHERE nome = "Ralf";

Mão na massa! Vamos abrir o nosso repositório e criar o método findByCodigo (linha 16 da imagem abaixo):

Agora vamos criar nossa rota no arquivo de controle:

Podemos realizar um teste via navegador (localhost:8080/api/1):

Você também pode fazer o mesmo teste utilizando o Thunder Client. Espero que tenham entendido, deixarei abaixo um vídeo detalhando a elaboração dessa etapa do tutorial:

Fonte utilizada para a criação desse tutorial: