Сообщения

MS Lesson12: n + 1 problem

  package guru.springframework.cruddemo.entity; import jakarta.persistence.CascadeType; import jakarta.persistence. Column ; import jakarta.persistence. Entity ; import jakarta.persistence.FetchType; import jakarta.persistence. GeneratedValue ; import jakarta.persistence.GenerationType; import jakarta.persistence. Id ; import jakarta.persistence. OneToMany ; import jakarta.persistence. OneToOne ; import jakarta.persistence. Table ; import lombok. AllArgsConstructor ; import lombok. Builder ; import lombok. Getter ; import lombok. NoArgsConstructor ; import lombok. Setter ; import lombok. ToString ; import java.util.ArrayList; import java.util.List; @Getter @Setter @Entity @Builder @ToString @NoArgsConstructor @AllArgsConstructor @Table (name = "persons" ) public class Person { @Id @GeneratedValue (strategy = GenerationType. IDENTITY ) private Long id ; @Column (nullable = false ) private String name ; @Column (nullable = false , unique = true ) pri...

MS Lesson11: Entity Manager, Entity relations

Изображение
0. Ön səhnə: DB, connection, transaction (Step-by-step) Təsəvvür et ki, DB = kitabxana, application = kitab gətirən maşın, connection = bu kitabxanaya açılan yol, transaction = “bir dəfəyə gətirmə qaydası”. Connection  açılır. Transaction  başlayır: “bu aralıqdakı iş ya hamısı olur, ya da heç biri”. Əsas qayda: commit  = kitablar həqiqətən rəfə gedir. rollback  = gətirdin, amma “heç nə olmamış kimi” geri qaytarırsan. 1.  EntityManagerFactory  nədir? (Step 1) EntityManagerFactory  = “mətbəx maşınlarının fabrikası”. Bir dənə olur (tipik). Sənə hər transaction üçün uyğun  yeni  EntityManager  yaratmağa  kömək edir. Yəni: EMF = fabrika EM = mətbəx (işin içində baş verir) 2.  EntityManager  nədir? (Step 2) EntityManager  = “iş vərəqi / kassa”. Sən JPA əmrlərini verəndə (find/persist/merge/remove/refresh/detach) “bu vərəq” içində baş verir. Bu vərəqin ən önəmli hissəsi var: 3. Persistence Context nədir? (Step 3 – ən kritik)...

MS Lesson10: JPA and EntityManagerFactory

  EntityManagerFactory və EntityManager  JPA / Hibernate dünyasında iki əsas oyunçu var: EntityManagerFactory  – “zavod” EntityManager  – “işçi” 1. Böyük şəkil: ApplicationContext → EntityManagerFactory → EntityManager → Connection → Database Spring Boot tətbiqində axın təxmini belədir: ApplicationContext │ ├── EntityManagerFactory (1 ədəd, singleton, bahalı obyekt) │ │ │ └── EntityManager (çox ədəd, qısa ömürlü “session” obyektləri) │ │ │ └── Connection (HikariCP-dən götürülən DB connection) │ │ │ └── PostgreSQL session │ └── Digər bean-lar (Service, Repository, Controller və s.) Yadda saxla: EntityManagerFactory  – tətbiq boyu  1 dəfə  yaradılır (ApplicationContext kimi). EntityManager  – hər  transaction / iş  üçün ayrıca yaradılıb bağlanan “session” kimidir. Connection  – Hikari hovuzundan götürülür, DB ...