Встречается на собеседованиях • сегодня
Распространяется ли влияние аннотации @Transactional, расположенной над методом A, на метод B, если метод B вызывается внутри метода A через объект другого класса
Нет, аннотация @Transactional не распространяется на метод B, если он вызывается внутри метода A через другой объект. Spring AOP работает через прокси-объекты, и вызовы между разными бинами не перехватываются автоматически.
Пример:
java
@Service
class ServiceA {
@Transactional
void methodA() {
serviceB.methodB(); // Вызов methodB не будет в транзакции methodA
}
}
@Service
class ServiceB {
void methodB() {
// Без своей аннотации @Transactional будет выполняться вне транзакции
}
}Чтобы methodB() выполнялся в транзакции, нужно либо:
- Добавить
@Transactionalнад ним, - Либо вызвать его через
this.methodB()внутри одного класса (если оба метода в одном сервисе).

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