Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Java: hibernate, session

Как работает кэш первого уровня Hibernate?

Вопрос проверяет понимание работы Session и принципов управления сущностями в Hibernate.

Короткий ответ

Кэш первого уровня привязан к Session.
Он хранит все загруженные и сохранённые сущности.
Повторный запрос той же сущности не обращается к базе данных.
Hibernate возвращает объект из кэша.
Это гарантирует уникальность сущностей в рамках сессии.

Длинный ответ

Кэш первого уровня — это Persistence Context, встроенный в Hibernate.

Основная идея

First-level cache:

  • существует всегда

  • работает автоматически

  • не требует настройки

Каждая Session имеет собственный кэш.

Принцип работы

Алгоритм:

  1. Hibernate ищет сущность в кэше сессии

  2. если найдено — возвращает объект

  3. если нет — выполняется SQL-запрос

  4. результат сохраняется в кэше

Пример:

User u1 = session.get(User.class, 1L);
User u2 = session.get(User.class, 1L);
// второй вызов не обращается к БД

Дополнительные эффекты

  • гарантируется identity (один объект — одна сущность)

  • Hibernate отслеживает изменения

  • изменения синхронизируются при flush

Вывод

Кэш первого уровня — фундаментальный механизм Hibernate, обеспечивающий согласованность данных и снижение количества SQL-запросов.

Уровень

  • Рейтинг:

    5

  • Сложность:

    5

Навыки

  • Java

    Java

Ключевые слова

#hibernate

#session

Подпишись на Java Developer в телеграм