在我的应用程序中,尝试提交事务时,我试图在catch块中吸收运行时异常
但是我得到RollbackException: Transaction marked as rollbackOnly
。
据我所知,每当抛出运行时异常时,该特定事务就会被标记为回退。
但是在我的代码中,我正在新事务中捕获异常,那么父事务如何受到影响?
代码:
@Transactional(propagation = Propagation.REQUIRED)
Class A{
void method1() {
b.method2();
}
}
class B {
void method2() {
c.method3();
}
}
class C {
void method4() {
method5();
}
@Transactional(propagation = Propagation.REQUIRES_NEW)
method5() {
save(); \\ saving data in this line
try {
flush();
} catch(Exception e ) {
}
}
}
在此代码中,method5()中引发了异常,并且该方法处于新事务下。那么父交易(在A类中)如何受到影响?
如果您可以提供有用的解决方案