Мне явно нужна помощь по откату транзакции. Я работаю над приложением Spring/JPA/Hibernate.Откат с зацепом RuntimeException
Для меня RuntimeException
, даже если они пойманы, откатываются назад. Я выводил это с некоторыми тестами (что я не могу сказать здесь, к сожалению, поскольку у меня их больше нет) и чтения.
Но я испытываю другое поведение со следующим кодом:
public class Service implements IService {
@Transactional
public void test()
{
// ...
try {
throw new RuntimeException();
} catch (RuntimeException re) {
}
foo.setBar(barValue);
this.fooDao.save(foo);
}
}
После выполнения этого от контроллера, изменение на bar
параметра присутствует в моей базе данных, которая означает, что сделка не была rollbacked.
Теперь вопрос
Ли поймала RuntimeException приводит к откату или я ошибаюсь?
Возможно, я просто не понимаю, что здесь происходит, но не нужно ли вводить код отката внутри блока catch? –