Sobes.tech
Junior — Middle

Hogyan valósítja meg a JPA repository az alkalmazás indításakor automatikusan létrehozott módszereket?

sobes.tech MI

Válasz az MI-től

A Spring Data JPA tároló automatikusan létrehozott módszereket valósít meg, a dinamikus proxy objektumok létrehozásának mechanizmusát használva az alkalmazás indításakor.

Amikor egy tároló interfészt deklarálsz, például, amely öröklődik a JpaRepository-ból, a Spring Data elemzi a metódusneveket és azok szignatúráit, hogy megértse, milyen lekérdezéseket kell generálni. Ezután Reflection és Proxy segítségével létrehozza ennek az interfésznek a megvalósítását, amely a metódushívások során a megfelelő JPQL vagy SQL lekérdezéseket formálja és hajtja végre.

Példa:

public interface UserRepository extends JpaRepository<User, Long> {
    List<User> findByLastName(String lastName);
}

A Spring indításakor egy proxy jön létre, amely a findByLastName hívásakor egy SELECT u FROM User u WHERE u.lastName = ?1 típusú lekérdezést generál és automatikusan végrehajtja.