Sobes.tech
Junior — Middle

Kako se vrši čuvanje i preuzimanje objekta iz keša prvog nivoa u aplikaciji?

sobes.tech АИ

Одговор од АИ

U Javi, na primer prilikom korišćenja Hibernate-a, keš prvog nivoa je sesija (Session), koja čuva objekte učitane u okviru jedne transakcije. Čuvanje objekta u keš prvog nivoa se automatski dešava prilikom poziva metoda za čuvanje ili učitavanje objekta putem sesije.

Preuzimanje objekta iz keša prvog nivoa dešava se pri ponovnom zahtevu za istim objektom sa istim identifikatorom unutar iste sesije: Hibernate ne pristupa bazi podataka, već vraća objekat iz keša.

Primer:

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

// Učitavanje objekta, on ulazi u keš prvog nivoa
User user = session.get(User.class, userId);

// Pri ponovnom pozivu get sa istim userId, objekat se uzima iz keša, bez upita na bazu
User sameUser = session.get(User.class, userId);

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

Na ovaj način, keš prvog nivoa je povezan sa sesijom i obezbeđuje optimizaciju ponovnim korišćenjem učitanih objekata bez dodatnih upita na bazu.