Sobes.tech
Junior — Middle

Meg tudná magyarázni, hogy mi az első szintű cache az EntityManagerben, és hogyan működik?

sobes.tech MI

Válasz az MI-től

Az első szintű gyorsítótár (First Level Cache) az EntityManagerben egy beépített mechanizmus, amely az EntityManager sajátja, és az adott munkamenet (tranzakció) során a adatbázisból betöltött objektumokat tárolja gyorsítótárban.

Hogyan működik:

  • Amikor egy entitást betölt az EntityManager, az objektum a gyorsítótár első szintjében kerül mentésre.
  • Ha ugyanazon munkamenet során ugyanazzal az azonosítóval ugyanazt az entitást kérjük, az EntityManager a gyorsítótárból adja vissza az objektumot, nem kérdezi le újra az adatbázist.
  • Az első szintű gyorsítótár csak egy munkameneten belül működik.
  • A munkamenet lezárásakor a gyorsítótár törlődik.

Ez javítja a teljesítményt az adatbázis felé tett kérések számának csökkentésével, és biztosítja az adatok konzisztenciáját ugyanazon tranzakción belül.

Példa:

EntityManager em = entityManagerFactory.createEntityManager();
em.getTransaction().begin();

User user1 = em.find(User.class, 1); // adatbázis lekérdezés
User user2 = em.find(User.class, 1); // a gyorsítótárból, nem kérdezi le újra az adatbázist

em.getTransaction().commit();
em.close();

Így az első szintű gyorsítótár segít optimalizálni az adatbázissal való munkát, csökkentve a redundáns lekérdezéseket.