ORM, JPA

ORM - Object-Relational Mapping bir yanashmadir, spesifikasiya deyil.
Table larin Class ile ifade olunmasidir, yeni user table ve daxilinde id , name , surname column lar varsa, class da da eynen bu deyishenler olmalidir.
Acilishina nezer yetirsek, table lar arasinda olan elaqelerde class lar arasinda gosterilmelidir. Meselen, Teacher ozu Student ile OneToMany elaqelidir. Class da da bu Teacher obyekti daxilinde , Student list saxlamaqla gosterilmelidir.

JPA spesifikasiyadir. Hibarnate ve Eclipselink ise bu spesifikasiyani istifade eden kitabxanalardir.

2ci blokda MySQL yox bashqa Driver olmali idi, sehv qalib o :D

JPA ortada duraraq uygun SQL diline query generasiya edir (JPQL).Daha etrafli, JPA istifade eden zaman DB in ferqi olmur. Istenilen vaxt DB ni deyishib proqrami istifade etmek olar.


JPA eslinde ne edir ?

JPA yeni (meselen) EclipseLink den istifade etdiyimiz zaman persistance.xml fayli yaranir ve bu fayli oxuyaraq, db ya connect olur. EclipseLink eslinde arxada JDBC istifade edir.
Daha sonra EntityManagerFactory vasitesile EntityManager yaradiliriq ve uygun metodlari istifade edirik.
Tutaq ki, obyekti yaratdiq ve User classimiz var. Numune:

EntityManagerFactory emf =
                            Persistance.createEntityManagerFactory("persistanceName");
EntityManager em = emf.createEntity();

User u = em.find(User.class,userId);

Artiq , arxada User obyekti yaranaca, Id ye gore db dan melumat tapilacaq ve hemin obyekte uygun parametrler set olunacaq ve geri dondurelecek.

Bunlari EclipseLink edir. JPA interface lerinden istifade ederek, polimorfizme gore EclipeLink classlarini istifade ede bilirik.

Popular posts from this blog

Validation for AZ phone numbers with RegEx in Java

Java necə işləyir, kod nədir ?

@Transactional annotation haqqinda. Cascade istifade olunmasi