Встречается на собеседованиях • сегодня
Как получить безошибочный доступ к ассоциации сущности
Для безопасного доступа к ассоциации сущности в Hibernate/JPA используйте ленивую загрузку (`FetchType.LAZY`) и проверяйте инициализацию ассоциации через `Hibernate.isInitialized()`.
Пример:
```java
@Entity
public class Order {
@OneToMany(fetch = FetchType.LAZY, mappedBy = "order")
private List- items;
public List
- getItems() {
if (!Hibernate.isInitialized(items)) {
throw new IllegalStateException("Items not initialized");
}
return items;
}
}
```
Альтернативно можно использовать `JOIN FETCH` в JPQL для явной загрузки:
```java
Order order = em.createQuery(
"SELECT o FROM Order o JOIN FETCH o.items WHERE o.id = :id",
Order.class)
.setParameter("id", orderId)
.getSingleResult();
```
Всегда проверяйте инициализацию или используйте стратегии загрузки явно, чтобы избежать `LazyInitializationException`.

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