Sobes.tech
Junior — Middle

Cum se realizează stocarea și recuperarea unui obiect din cache-ul de nivelul întâi în aplicație?

sobes.tech AI

Răspuns de la AI

În Java, de exemplu, atunci când se utilizează Hibernate, cache-ul de nivelul întâi este sesiunea (Session), care stochează obiectele încărcate în cadrul unei singure tranzacții. Salvarea unui obiect în cache-ul de nivelul întâi are loc automat la apelarea metodelor de salvare sau încărcare a obiectului prin intermediul sesiunii.

Recuperarea unui obiect din cache-ul de nivelul întâi are loc atunci când se face o solicitare repetată a aceluiași obiect cu același identificator în cadrul aceleiași sesiuni: Hibernate nu accesează baza de date, ci returnează obiectul din cache.

Exemplu:

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

// Încărcarea obiectului, acesta intră în cache-ul de nivelul întâi
User user = session.get(User.class, userId);

// La o apelare ulterioară a get cu același userId, obiectul este preluat din cache, fără a se face o interogare la Bază de date
User sameUser = session.get(User.class, userId);

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

Astfel, cache-ul de nivelul întâi este legat de sesiune și asigură optimizare prin reutilizarea obiectelor încărcate fără solicitări suplimentare către bază.