Sobes.tech
Junior — Middle

Kuidas toimub esimese taseme vahemälu objekti salvestamine ja väljavõtmine rakenduses?

sobes.tech AI

Vastus AI-lt

Java-s, näiteks Hibernate'i kasutamisel, on esimese taseme vahemälu sessioon (Session), mis salvestab ühe tehingu jooksul laaditud objektid. Esimese taseme vahemällu objekti salvestamine toimub automaatselt, kutsudes sessiooni kaudu salvestamise või laadimise meetodeid.

Objekti saamine esimese taseme vahemälust toimub, kui sama objekti sama identifikaatoriga korduvküsimus tehakse sama sessiooni jooksul: Hibernate ei pöördu andmebaasi, vaid tagastab objekti vahemälust.

Näide:

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

// Objekti laadimine, see läheb esimese taseme vahemällu
User user = session.get(User.class, userId);

// Kui kutsutakse uuesti get sama userId-ga, võetakse objekt vahemälust, ilma andmebaasi päringuta
User sameUser = session.get(User.class, userId);

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

Sellisel viisil on esimese taseme vahemälu seotud sessiooniga ning see tagab optimeerimise, korduvkasutades laaditud objekte ilma täiendavate päringuteta andmebaasile.