Встречается на собеседованиях • сегодня
Какие знаешь способы получения безошибочного доступа к ассоциации сущности
В JPA/Hibernate есть несколько способов безопасного доступа к ассоциациям:
- Eager Loading - загружает ассоциации сразу:
java
@ManyToOne(fetch = FetchType.EAGER)
private Author author;- Lazy Loading + Hibernate.initialize():
java
@ManyToOne(fetch = FetchType.LAZY)
private Author author;
// Позже в сервисе
Hibernate.initialize(book.getAuthor());
text
3. **Entity Graphs** - определяет, что загружать в конкретном запросе:
```java
@EntityGraph(attributePaths = {"author"})
Book findWithAuthorById(Long id);- JOIN FETCH в JPQL:
java
@Query("SELECT b FROM Book b JOIN FETCH b.author WHERE b.id = :id")
Book findByIdWithAuthor(@Param("id") Long id);- @NamedEntityGraph - предопределенные графы загрузки.
Важно: избегайте N+1 проблемы, используя правильную стратегию загрузки. Для транзакционных методов лучше использовать JOIN FETCH или Entity Graphs, для не-транзакционных - EAGER или инициализацию.

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