Junior — Middle
Como é que o repositório JPA implementa os métodos criados automaticamente durante a inicialização da aplicação?
sobes.tech IA
Resposta da IA
O repositório JPA no Spring Data implementa métodos criados automaticamente, usando o mecanismo de criação dinâmica de objetos proxy durante a execução da aplicação.
Quando declara uma interface de repositório, por exemplo, herdando de JpaRepository, o Spring Data analisa os nomes dos métodos e suas assinaturas para entender quais consultas precisam ser geradas. Depois, usando Reflection e Proxy, é criada uma implementação dessa interface, que ao chamar seus métodos, forma e executa as consultas JPQL ou SQL correspondentes.
Exemplo:
public interface UserRepository extends JpaRepository<User, Long> {
List<User> findByLastName(String lastName);
}
Ao iniciar o Spring, um proxy será criado, que ao chamar findByLastName, gerará uma consulta do tipo SELECT u FROM User u WHERE u.lastName = ?1 e a executará automaticamente.