Встречается на собеседованиях • сегодня
В каких случаях Transactional не откатит транзакцию назад
Transactional не откатит транзакцию в следующих случаях:
- Исключения, не отмеченные
@Transactional(rollbackFor=...)- по умолчанию откат только на unchecked исключениях (RuntimeException и его наследники)
java
@Transactional
public void method() throws Exception {
throw new Exception(); // не откатит
}- Метод вызван из этого же класса - Spring AOP прокси не перехватывает внутренние вызовы
java
public class Service {
@Transactional
public void outer() {
inner(); // транзакция не работает
}
@Transactional
public void inner() {}
}-
Транзакция помечена как
PROPAGATION_NEVERилиPROPAGATION_NOT_SUPPORTED -
Используется
try-catchс подавлением исключения
java
@Transactional
public void method() {
try {
// код с ошибкой
} catch (Exception e) {
// исключение подавлено - отката нет
}
}- Транзакция уже помечена как
readOnly=true- для некоторых операций изменения

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