Встречается на собеседованиях • сегодня
Какие проблемы возникают при использовании аннотации @Lazy без @Transactional
Использование `@Lazy` без `@Transactional` может привести к проблемам:
1. **LazyInitializationException** - при попытке загрузить ленивые коллекции вне транзакции:
```java
@Entity
public class User {
@OneToMany(fetch = FetchType.LAZY)
private List orders;
}
// Без @Transactional
User user = userRepository.findById(1L);
user.getOrders(); // LazyInitializationException
```
2. **Проблемы с проксированием** - Spring создает прокси для ленивых бинов, но без транзакции не может управлять их инициализацией.
3. **Неожиданное поведение** - зависимости могут оставаться неинициализированными до первого использования, что может вызвать NPE.
4. **Проблемы с контекстом** - в веб-приложениях сессия Hibernate может закрыться до инициализации ленивых полей.
Решение: всегда использовать `@Transactional` при работе с ленивыми зависимостями или ленивой загрузкой JPA.

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