Встречается на собеседованиях • сегодня
Какие знаешь проблемы при использовании Hibernate
Hibernate может вызывать несколько типичных проблем:
1. **N+1 проблема** - при ленивой загрузке коллекций каждый элемент загружается отдельным запросом. Решение: использовать `JOIN FETCH` или `@BatchSize`.
```java
// Плохо
List orders = session.createQuery("FROM Order").list();
for (Order o : orders) {
o.getItems().size(); // N+1 запросов
}
// Хорошо
List orders = session.createQuery(
"SELECT o FROM Order o JOIN FETCH o.items", Order.class).list();
```
2. **Кэширование** - проблемы с актуальностью данных в кэше 1го/2го уровня. Решение: настраивать стратегии кэширования.
3. **Проблемы с производительностью** - из-за автоматической проверки изменений (dirty checking). Решение: использовать `StatelessSession` для массовых операций.
4. **Сложность отладки** - Hibernate генерирует сложные SQL, которые трудно анализировать. Решение: включать логирование SQL.
5. **Проблемы с версионностью** - оптимистичная блокировка может вызывать `OptimisticLockException`.

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