Sobes.tech
Junior — Middle

Hogyan történik az első szintű gyorsítótárban lévő objektum tárolása és lekérése az alkalmazásban?

sobes.tech MI

Válasz az MI-től

Java-ban, például Hibernate használata esetén, az első szintű cache a session (Session), amely egy tranzakció keretében betöltött objektumokat tárolja. Az első szintű cache-be való mentés automatikusan történik az objektum mentése vagy betöltése során a session segítségével.

Az első szintű cache-ből való objektum lekérése akkor történik, amikor ugyanazzal az azonosítóval ismételten kérjük ugyanazt az objektumot egy sessionön belül: a Hibernate nem kérdezi le az adatbázist, hanem a cache-ből adja vissza az objektumot.

Példa:

Session session = sessionFactory.openSession();
session.beginTransaction();

// Objektum betöltése, ez bekerül az első szintű cache-be
User user = session.get(User.class, userId);

// Ugyanazzal az userId-val ismételt get hívás esetén az objektum a cache-ből kerül ki, anélkül, hogy adatbázis kérés történne
User sameUser = session.get(User.class, userId);

session.getTransaction().commit();
session.close();

Így az első szintű cache a session-hoz kötött, és az betöltött objektumok újrafelhasználásával optimalizálást biztosít anélkül, hogy további kérdéseket intéznénk az adatbázishoz.