У меня проблема:JPA Сущность не сохраняется после исключения
У меня есть 2 класса (A и B). Класс A имеет метод (method1), аннотированный с помощью @Transaction(noRollBackFor = ExceptionB.class)
, который вызывает метод2 из класса B. ExceptionB - это не проверенное исключение RunTimeException.
public class A {
...
@Resource
private B b;
@Transaction(noRollBackFor = ExceptionB.class)
public void method1() {
try {
b.method2();
} catch (ExceptionB e) {
// Change objects annotated with @Entity (must be persisted)
throw e;
}
}
}
@Transaction
public class B {
...
public void method2() {
...
throw new ExceptionB();
}
}
Однако, когда класс B бросает исключение, пружина перехватчик получает исключение и использует правила транзакции аннотаций класса В (что уже не надо правило noRollBackFor) и сделать откат транзакции. Таким образом, все изменения, выполненные в методе 1, не сохраняются. Что я должен изменить на откат, не произойдет?
Заранее спасибо.