Встречается на собеседованиях • сегодня
Что такое кэш первого уровня в EntityManager
Кэш первого уровня (L1 cache) в EntityManager — это внутренний кэш, автоматически управляемый JPA-провайдером (например, Hibernate) в рамках одной сессии (транзакции). Он хранит загруженные сущности, предотвращая повторные запросы к БД при повторном обращении к тем же объектам.
Особенности:
- Привязан к конкретному
EntityManager(не разделяется между сессиями). - Автоматически очищается при закрытии
EntityManagerили вызовеclear(). - Гарантирует консистентность данных в рамках транзакции.
Пример:
java
EntityManager em = emf.createEntityManager();
em.getTransaction().begin();
// Первый запрос в БД
User user1 = em.find(User.class, 1L);
// Второй запрос не выполняется — данные берутся из L1 кэша
User user2 = em.find(User.class, 1L);
System.out.println(user1 == user2); // true (один и тот же экземпляр)
em.getTransaction().commit();
em.close(); // Кэш очищается
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы