Sobes.tech
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.