Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Задачи

Войти

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

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

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

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

Какие уровни кэша существуют в Hibernate?

Вопрос проверяет понимание механизмов оптимизации работы с базой данных в Hibernate.

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

В Hibernate существует несколько уровней кэша.
Кэш первого уровня включён всегда и привязан к сессии.
Кэш второго уровня является опциональным и разделяется между сессиями.
Также существует кэш запросов.
Эти механизмы снижают количество обращений к базе данных.

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

Hibernate использует многоуровневую систему кэширования, чтобы уменьшить нагрузку на БД.

Кэш первого уровня

First-level cache:

  • включён по умолчанию

  • привязан к Session

  • хранит загруженные сущности

Особенность:

  • одна и та же сущность не загружается дважды в рамках сессии

Кэш второго уровня

Second-level cache:

  • общий для всех сессий

  • отключён по умолчанию

  • требует отдельного провайдера

Примеры провайдеров:

  • Ehcache

  • Caffeine

  • Infinispan

Кэш запросов

Query cache:

  • хранит результаты запросов

  • работает поверх второго уровня

  • используется реже

Вывод

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

Уровень

  • Рейтинг:

    5

  • Сложность:

    6

Навыки

  • Java

    Java

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

#hibernate

#cache

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