1
resposta

Não está claro o que é esse técnica de findAll() para findAllByAtivoTrue()

Eu entendi que o findAll() é um método de JpaRepository para encontrar tudo que está dentro do banco de dados e fazer a paginação. Então é necessário selecionar apenas os em que são na coluna ativo. E é criado esse findAllByAtivoTrue() que eu também entendi que é como se escrevesse essa solicitação no banco de dados para procurar somente aquilo. Mas qual o nome dessa técnica/método? Em que eu reescrevo um método do JpaRepository para ele fazer uma consulta especifica? Pq isso é especifico do JpaRepository para facilitar a consulta, certo?

1 resposta

Ola Clara, boa noite! Então, pense assim, o framework do spring te da 3 alternativas pra você construir as suas chamadas de busca, ou Querys: Spring Data, ou JpaRepository; JPQL; Query Nativa (Do inglês, Native Query);

A Query Nativa é você escrever a query que você quer fazer, como você faria lá no SQL. Então, no caso do findAllByAtivoTrue(), seria um "SELECT * FROM medicos WHERE ativo = TRUE". No caso da JPQL, é uma mistura entre uma orientação a objetos e SQL "SELECT m FROM medicos m WHERE m.ativo = TRUE". Repara que você referencia o objeto que você quer procurar. Ambas as anteriores você cria o método e em cima do método você faz a anotação @Query("escreva sua query aqui"). Com o spring data, só pela forma que você escreve, o framework do spring gera por debaixo dos panos uma query SQL e faz a requisição pra ti.

Quando usar qual? Depende da documentação da empresa que você estiver trabalhando. Mas, o que os devs costumam fazer: Query simples, spring data. Query verbosa, Native Query ou JPQL.

Ficou Claro? Abraços!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software