Sobes.tech
Junior — Middle

Jak je v aplikaci prováděno ukládání a načítání objektu z cache první úrovně?

sobes.tech AI

Odpověď od AI

V jazyce Java, například při použití Hibernate, je cache první úrovně relace (Session), která ukládá objekty načtené v rámci jedné transakce. Uložení objektu do cache první úrovně se automaticky provádí při volání metod pro uložení nebo načtení objektu přes relaci.

Získání objektu z cache první úrovně nastává při opakovaném požadavku na stejný objekt se stejným identifikátorem v rámci jedné relace: Hibernate neoslovuje databázi, ale vrací objekt z cache.

Příklad:

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

// Načtení objektu, který se dostává do cache první úrovně
User user = session.get(User.class, userId);

// Při dalším volání get se stejným userId je objekt načten z cache, nedochází k dotazu na DB
User sameUser = session.get(User.class, userId);

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

Tímto způsobem je cache první úrovně vázána na relaci a zajišťuje optimalizaci opakovaným použitím načtených objektů bez dalších dotazů na databázi.