Назад к вопросам
СБЕР
Senior
3
Что такое кэш первого уровня в Hibernate и как он работает?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Кэш первого уровня (L1 Cache) в Hibernate — это сессионный кэш, который существует в рамках одной сессии (Session). Он хранит объекты, загруженные или сохранённые в текущей сессии, чтобы избежать повторных запросов к базе данных для одних и тех же данных.
Как работает:
- При загрузке объекта через сессию Hibernate сначала проверяет L1 кэш.
- Если объект найден в кэше, возвращается он, без обращения к базе.
- Если нет — выполняется запрос к базе, объект загружается и помещается в кэш.
- Все изменения объектов в сессии отслеживаются и при вызове
flush()синхронизируются с базой.
Особенности:
- Кэш существует только в рамках одной сессии.
- Не разделяется между сессиями.
- Помогает повысить производительность за счёт уменьшения количества запросов.
Пример:
Session session = sessionFactory.openSession();
User user1 = session.get(User.class, 1); // запрос к базе
User user2 = session.get(User.class, 1); // из L1 кэша, запрос не выполняется
session.close();