Встречается на собеседованиях • сегодня
Что такое кэш в Hibernate
Hibernate использует кэш для повышения производительности, уменьшая количество запросов к БД. Существует два уровня кэширования:
- Кэш первого уровня (L1) - привязан к сессии. Включен по умолчанию, хранит объекты в рамках одной сессии. Автоматически очищается при закрытии сессии.
java
Session session = sessionFactory.openSession();
User user1 = session.get(User.class, 1L); // Запрос к БД
User user2 = session.get(User.class, 1L); // Берется из кэша L1- Кэш второго уровня (L2) - общий для всех сессий. Требует настройки (Ehcache, Infinispan и др.) и аннотации
@Cacheableна сущности:
java
@Entity
@Cacheable
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class User { ... }Также есть кэш запросов, который кэширует результаты HQL-запросов (требует явного включения).

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