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.