Junior — Middle
Ako implementuje JPA repozitár metódy, ktoré sa automaticky vytvárajú počas spustenia aplikácie?
sobes.tech AI
Odpoveď od AI
JPA repozitár v Spring Data implementuje metódy, ktoré sa automaticky vytvárajú pomocou mechanizmu dynamického vytvárania proxy objektov počas spustenia aplikácie.
Keď deklarujete rozhranie repozitára, napríklad, ktoré dedí od JpaRepository, Spring Data analyzuje názvy metód a ich podpisy, aby pochopil, aké dotazy je potrebné vygenerovať. Následne pomocou Reflection a Proxy vytvorí implementáciu tohto rozhrania, ktorá pri volaní metód formuluje a vykonáva príslušné JPQL alebo SQL dotazy.
Príklad:
public interface UserRepository extends JpaRepository<User, Long> {
List<User> findByLastName(String lastName);
}
Pri spustení Spring sa vytvorí proxy, ktorý pri volaní findByLastName vygeneruje dotaz typu SELECT u FROM User u WHERE u.lastName = ?1 a automaticky ho vykoná.