Как реализира JPA репозиторият методите, създадени автоматично по време на стартирането на приложението?
sobes.tech AI
Отговор от AI
Репозиторият JPA в Spring Data реализира методи, които се създават автоматично, използвайки механизма за динамично създаване на прокси обекти по време на стартиране на приложението.
Когато обявите интерфейс на репозитория, например наследяващ от JpaRepository, Spring Data анализира имената на методите и техните сигнатури, за да разбере какви заявки трябва да се генерират. След това с помощта на Reflection и Proxy се създава реализация на този интерфейс, която при извикване на методите формулира и изпълнява съответните JPQL или SQL заявки.
Пример:
public interface UserRepository extends JpaRepository<User, Long> {
List<User> findByLastName(String lastName);
}
При стартиране на Spring ще бъде създаден прокси, който при извикване на findByLastName ще генерира заявка като SELECT u FROM User u WHERE u.lastName = ?1 и ще я изпълни автоматично.