Встречается на собеседованиях • сегодня
Будет ли доступна связанная таблица в ManyToMany при изменении FetchType
При изменении `FetchType` в аннотации `@ManyToMany` доступность связанной таблицы зависит от выбранного типа загрузки:
1. **FetchType.EAGER (по умолчанию для `@ManyToMany`)**
Связанные сущности загружаются сразу вместе с основной сущностью (через JOIN в SQL).
```java
@ManyToMany(fetch = FetchType.EAGER)
private Set roles;
```
2. **FetchType.LAZY**
Связанные сущности загружаются только при явном обращении к ним (прокси или запрос при первом вызове).
```java
@ManyToMany(fetch = FetchType.LAZY)
private Set roles;
```
**Нюансы:**
- LAZY может вызвать `LazyInitializationException`, если обращение происходит вне транзакции.
- EAGER может привести к N+1 проблеме или избыточной загрузке данных.
- Поведение также зависит от провайдера JPA (Hibernate, EclipseLink и др.).
Выбор зависит от сценария: LAZY — для оптимизации, EAGER — если связи всегда нужны.

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