Sobes.tech
Junior — Middle

Ինչպե՞ս է JPA պահոցը իրականացնում ավտոմատ կերպով ստեղծված մեթոդները ծրագրի մեկնարկի ժամանակ։

sobes.tech AI

Պատասխան AI-ից

Spring Data-ի JPA պահոցը ավտոմատ կերպով իրականացնում է մեթոդներ, օգտագործելով դինամիկ պրոքսի օբյեկտների ստեղծման մեխանիզմը ծրագրի մեկնարկի ժամանակ:

Երբ հայտարարում եք պահոցային ինտերֆեյս, օրինակ՝ որը ժառանգում է 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 տիպի հարցում և ավտոմատ կերպով իրականացնում է այն։