Встречается на собеседованиях • сегодня

Как работает кэширование в 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 ``` 3. **Кэш запросов (Query cache)** Кэширует результаты запросов (HQL, Criteria). Требует отдельной настройки: ```java Query query = session.createQuery("from User where active = true") .setCacheable(true); ``` Важно: кэш второго уровня и кэш запросов требуют явного указания аннотации `@Cacheable` на entity.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы