7-modul · 7-dars: ORM · JPA

Daraja: Ilg'or

ORM · JPA. Jakarta EE bo‘yicha nazariya, amaliy namuna va mustaqil mashq.

Tushuntirish

## Dars maqsadi ORM · JPA tushunchalarini farqlash, nima uchun kerakligini izohlash va kichik misolda qo‘llash.

## Nazariya ORM obyektlar va relational jadvallar orasidagi mappingni boshqaradi. Jakarta Persistence API shartnoma, Hibernate esa uning implementationlaridan biri. Entity obyekt modeli, table saqlash modeli; ular doim birga-bir to'liq nusxa emas. ORM oddiy CRUD va change trackingni qulay qiladi, ammo SQL bilishni bekor qilmaydi. EntityManagerFactory og'ir, odatda bitta persistence unit uchun uzoq yashaydi. EntityManager persistence contextni boshqaradi va odatda thread-safe emas. Managed entity o'zgarishlari dirty checking orqali flushda SQLga aylanishi mumkin. Detached obyekt contextdan tashqarida. flush commit bilan bir xil emas: SQL yuboriladi, tranzaksiya hali rollback bo'lishi mumkin. JPQL jadval nomlari o'rniga entity va propertylar ustida ishlaydi. IDENTITY DB identityga, SEQUENCE generatorga, TABLE yordamchi jadvalga tayanadi; UUID strategiyasi mos Jakarta Persistence versiyasida mavjud. JDBC ustidan ORM abstraksiyasi yaratgani uchun N+1, keraksiz fetch va katta context muammolari paydo bo'ladi. Pagination va SQL kuzatuvi majburiy bilimdir.

## Manbalar [Moduldagi savollar yo‘nalishi](https://github.com/jlkesh/pdp_online_java_lessons/blob/main/interviewquestions/7-module%28Jakarta%20EE%29.md) [Rasmiy qo‘llanma](https://jakarta.ee/specifications/)

Kod quyida o‘quv namunasi sifatida berilgan. To‘liq ilova uchun import, dependency va konfiguratsiya kerak bo‘lishi mumkin. SQLni faqat ajratilgan test bazasida bajaring.

Kod misoli

@jakarta.persistence.Entity
class StudyNote {
  @jakarta.persistence.Id
  @jakarta.persistence.GeneratedValue(strategy = jakarta.persistence.GenerationType.IDENTITY)
  Long id;
  String title;
  protected StudyNote() {}
}

Keng tarqalgan xatolar

Mashqlar

Teglar: pdp, modul-07, nazariya

Interaktiv ko'rinish (viktorina, izohlar, tarix)