Junior — Middle
Kā JPA krātuve īsteno automātiski izveidotos metodes programmas palaišanas laikā?
sobes.tech AI
Atbilde no AI
Spring Data JPA krātuve automātiski īsteno metodes, izmantojot dinamiski izveidotu proxy objektu mehānismu programmas palaišanas laikā.
Kad deklarējat krātuves interfeisu, piemēram, kas manto no JpaRepository, Spring Data analizē metožu nosaukumus un to parakstus, lai saprastu, kādus vaicājumus nepieciešams ģenerēt. Tad, izmantojot Reflection un Proxy, tiek izveidota šī interfeisa īstenojuma versija, kas metožu izsaukšanas laikā veido un izpilda attiecīgos JPQL vai SQL vaicājumus.
Piemērs:
public interface UserRepository extends JpaRepository<User, Long> {
List<User> findByLastName(String lastName);
}
Spring palaišanas laikā tiek izveidots proxy, kas, izsaucot findByLastName, ģenerēs vaicājumu veida SELECT u FROM User u WHERE u.lastName = ?1 un to automātiski izpildīs.