Встречается на собеседованиях • сегодня
Где может падать Performance при работе с Hibernate
1. **N+1 проблема**: Частые запросы при ленивой загрузке коллекций. Решение – `JOIN FETCH` или `@BatchSize`.
```java
// Плохо
List orders = em.createQuery("SELECT o FROM Order o").getResultList();
for (Order o : orders) {
o.getItems().size(); // N+1 запросов
}
// Хорошо
List orders = em.createQuery(
"SELECT o FROM Order o JOIN FETCH o.items", Order.class).getResultList();
```
2. **Кэширование**: Отсутствие 2L-кэша или некорректные настройки `@Cacheable`.
3. **Размер выборки**: Избыточные данные (`SELECT *`). Используй DTO или `@EntityGraph`.
4. **Связи**: Каскадные операции (`CascadeType.ALL`) могут вызывать лишние SQL-запросы.
5. **Сессии**: Долгие транзакции (`Open Session in View` антипаттерн) или утечки памяти из-за неочищенного `PersistenceContext`.
6. **Генерация ID**: `IDENTITY` стратегия блокирует вставки. Лучше `SEQUENCE` с `hi/lo`.

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