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

Где может падать 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`.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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