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

Какие знаешь сложности при работе с кэшированием в Hibernate

Основные сложности с кэшированием в Hibernate: 1. **Синхронизация данных** - при изменении данных в БД минуя Hibernate кэш становится неактуальным. Решение - настроить время жизни кэша или использовать инвалидацию. 2. **Проблемы с коллекциями** - при кэшировании ассоциаций (@OneToMany) могут возникать LazyInitializationException. Нужно правильно настраивать FetchType и использовать JOIN FETCH в запросах. 3. **Конкурентный доступ** - в кластерных решениях требуется синхронизация кэшей между узлами. Используется Infinispan или Hazelcast. 4. **Утечки памяти** - при большом объеме данных в кэше 1-го уровня (Session). Решение - своевременно закрывать сессии. Пример проблемы N+1 без кэша: ```java @Entity class User { @OneToMany(fetch = FetchType.LAZY) List orders; } // Будет N+1 запросов при итерации users.forEach(u -> u.getOrders().size()); ``` Решение - включить 2-й уровень кэша и настроить @Cacheable на сущности.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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