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.