Встречается на собеседованиях • сегодня

Почему не выполнится транзакция с помощью приватного метода с аннотацией Transactional

Приватные методы с аннотацией @Transactional не работают, потому что Spring AOP (который реализует транзакционную логику) использует проксирование. Прокси-классы могут перехватывать вызовы только public методов. Приватные методы не видны наследникам и прокси, поэтому транзакционная логика не применяется.

Пример:

java
@Service
public class UserService {
    @Transactional
    private void updateUser() { // Не сработает!
        // логика обновления
    }
}

Решение: сделайте метод public или переместите transactional-логику в public метод.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы