Spring middle
Что такое @Transactional?
Ответ
Прокси (JDK/CGLIB). Открывает транзакцию, commit/rollback. self-call минует прокси. Rollback на RuntimeException/Error; checked — нужен rollbackFor.
Разбор: @Transactional реализован через прокси (JDK/CGLIB), поэтому self-call минует прокси и транзакция не открывается; откат по умолчанию происходит только на RuntimeException и Error, а для checked-исключений нужен rollbackFor. Propagation по умолчанию — REQUIRED (присоединение к существующей транзакции), а не REQUIRES_NEW.
Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.