Встречается на собеседованиях • сегодня
Какие уровни кэширования знаешь в Hibernate
В Hibernate есть несколько уровней кэширования:
1. **Кэш первого уровня (Session cache)** - привязан к сессии, включен по умолчанию. Хранит объекты в рамках одной сессии. Очищается при закрытии сессии.
```java
Session session = sessionFactory.openSession();
User user1 = session.get(User.class, 1L); // запрос в БД
User user2 = session.get(User.class, 1L); // берется из кэша
```
2. **Кэш второго уровня (Second-level cache)** - общий для всех сессий. Требует явного включения и настройки провайдера (Ehcache, Infinispan и др.). Кэширует сущности, коллекции, запросы.
3. **Кэш запросов (Query cache)** - кэширует результаты HQL/Criteria запросов. Работает только вместе с кэшем второго уровня.
```xml
true
true
```
Кэши помогают уменьшить количество обращений к БД, но требуют осторожности при работе с изменяемыми данными.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы