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.