Встречается на собеседованиях • сегодня
Какие знаешь виды кэша в 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 и др.).
```xml
org.hibernate.cache.ehcache.EhCacheRegionFactory
true
```
3. **Кэш запросов (Query cache)**
Кэширует результаты HQL-запросов. Требует включения:
```java
Query query = session.createQuery("FROM User").setCacheable(true);
```
4. **Коллекции**
Кэшируются отдельно от сущностей (требует аннотации `@Cache` для коллекции).
Важно: кэш второго уровня и кэш запросов требуют явного управления (настройка TTL, обновление при изменениях).

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