事务问题记录
2021-09-02 本文已影响0人
Listergray
A、B两个类中a、b两个事务方法,传播属性均为:Propagation.REQUIRED;
a方法全局try-catch,b中无try-catch;
当b异常,a中已执行数据库操作回滚,a方法直接抛出b的异常,a的catch中代码正常执行
处理方式
1、b方法设置为非事务方法
2、b方法内部try-catch处理异常
3、b方法新建事务执行(Propagation.REQUIRES_NEW)
A、B两个类中a、b两个事务方法,传播属性均为:Propagation.REQUIRED;
a方法全局try-catch,b中无try-catch;
当b异常,a中已执行数据库操作回滚,a方法直接抛出b的异常,a的catch中代码正常执行
处理方式
1、b方法设置为非事务方法
2、b方法内部try-catch处理异常
3、b方法新建事务执行(Propagation.REQUIRES_NEW)