Встречается на собеседованиях • сегодня
Какие знаешь стратегии по оптимизации при работе с 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();
}
```

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