У меня есть следующий код
@Transactional
public void f1() {
try {
lock();
//some logic
} catch (Exception ex) {
} finally {
releaseLock();
}
@Transactional(propagation = Propagation.REQUIRES_NEW)
public void lock() {
repository.doLock();
}
@Transactional(propagation = Propagation.REQUIRES_NEW)
public void releaseLock() {
repository.doReleaseLock();
}
Я хочу иметь следующее поведение: если что-то пойдет не так в , будет снята некоторая логика блокировки.
В отладке и в логах я вижу очень странное поведение.
Код рабочего процесса никогда не посещают, наконец.
Итак, мой вопрос: как исправить этот код, чтобы иметь 3 транзакции, которые полностью откатываются в случае сбоя одной из них?