Встречается на собеседованиях • сегодня
Какой опыт с аннотацией Transactional в Spring
Аннотация @Transactional в Spring используется для управления транзакциями. Она упрощает декларативное управление транзакциями без необходимости явного кода.
Ключевые особенности:
- Работает на уровне методов или классов.
- Поддерживает propagation (
REQUIRED,REQUIRES_NEWи др.), isolation, timeout, read-only режим. - По умолчанию работает только с unchecked исключениями (
RuntimeException). Для checked исключений нужно указыватьrollbackFor.
Пример:
java
@Service
public class UserService {
@Transactional
public void updateUser(User user) {
// Бизнес-логика, работа с БД
}
@Transactional(propagation = Propagation.REQUIRES_NEW,
rollbackFor = Exception.class)
public void createUser(User user) throws Exception {
// Логика с возможным checked исключением
}
}Нюансы:
- Проксирование:
@Transactionalработает через AOP, поэтому вызов метода внутри того же класса (без прокси) не активирует транзакцию. - Для тестирования можно использовать
@Transactionalв тестах с автоматическим откатом.

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