Встречается на собеседованиях • сегодня
Что будет, если не указать @Transactional при работе с репозиторием
Если не указать @Transactional, каждое обращение к репозиторию будет выполняться в отдельной транзакции. Это может привести к проблемам:
- Нет атомарности – если несколько операций должны выполняться как единое целое, при ошибке часть изменений сохранится, а часть – нет.
- LazyInitializationException – при попытке загрузить ленивые коллекции вне транзакции.
Пример:
java
// Без @Transactional
public void updateUser(User user) {
userRepository.save(user); // Транзакция 1
auditRepository.logAction(); // Транзакция 2 - если упадёт, user всё равно сохранится
}Для чтения можно использовать @Transactional(readOnly = true), для записи – просто @Transactional. В Spring Data JPA репозитории по умолчанию уже обёрнуты в транзакции, но для сервисного слоя лучше явно указывать аннотацию.

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