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

Можно ли добавить аннотацию @Transactional к приватному методу

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

Пример:

java
@Service
public class UserService {

    @Transactional
    public void publicMethod() {
        privateMethod(); // Транзакция не будет работать!
    }

    @Transactional
    private void privateMethod() {
        // Логика с транзакцией (не сработает)
    }
}

Для работы транзакций методы должны быть как минимум package-visible (default) или публичными.

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

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

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

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