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

Какие знаешь стратегии по оптимизации при работе с Hibernate

1. **Использование FetchType.LAZY** для ленивой загрузки связанных сущностей, чтобы избежать N+1 проблемы. ```java @OneToMany(fetch = FetchType.LAZY, mappedBy = "parent") private List children; ``` 2. **Пакетная обработка (Batch Processing)** через `hibernate.jdbc.batch_size` для уменьшения количества запросов к БД. ```java properties.put("hibernate.jdbc.batch_size", "30"); ``` 3. **Кэширование** (второго уровня и запросов) для снижения нагрузки на БД. ```xml ``` 4. **Оптимизация запросов** через `JOIN FETCH` или `@EntityGraph` для загрузки данных за один запрос. ```java @Query("SELECT p FROM Parent p JOIN FETCH p.children WHERE p.id = :id") Parent findByIdWithChildren(@Param("id") Long id); ``` 5. **Отслеживание и устранение лишних запросов** с помощью `hibernate.show_sql` и `hibernate.format_sql`. 6. **Использование DTO/Projections** вместо полных сущностей для выборки только нужных полей. ```java public interface UserDto { String getName(); String getEmail(); } ```
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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