Встречается на собеседованиях • сегодня
Что произойдет если в методе с аннотацией Transactional вызвать метод с аннотацией Transactional
При вызове одного @Transactional метода из другого поведение зависит от propagation (распространения) транзакции:
- По умолчанию (
REQUIRED) - внутренний метод присоединится к существующей транзакции. Если внешний метод откатится, откатится и внутренний.
-
REQUIRES_NEW- создаст новую транзакцию, независимую от внешней. -
NOT_SUPPORTED- выполнится без транзакции, даже если есть внешняя.
Пример:
java
@Transactional
public void outerMethod() {
innerMethod(); // поведение зависит от propagation innerMethod
}
@Transactional(propagation = Propagation.REQUIRES_NEW)
public void innerMethod() {
// выполняется в новой транзакции
}Важно: self-invocation (вызов через this) не работает из-за proxy-механизма Spring.

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