Встречается на собеседованиях • сегодня
Будут ли работать конструкции с приватным методом, помеченным @Transactional
Приватные методы в Spring не поддерживают транзакционность через @Transactional, так как Spring использует AOP-проксирование. Прокси не может перехватить вызов приватного метода, так как он доступен только внутри класса. Для работы транзакций метод должен быть как минимум package-private (default) или выше (protected, public).
java
@Service
public class UserService {
@Transactional // не сработает!
private void privateMethod() {
// логика с транзакцией
}
@Transactional // сработает
public void publicMethod() {
privateMethod(); // транзакция не применится
}
}Если нужна транзакционность, используйте публичные/защищённые методы или self-injection через @Autowired (но это антипаттерн).

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