Sobes.tech
Назад к вопросам
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();