我有一个控制器调用service_A, service_A调用service_B,在service_B有3个方法。
A method_A依次调用method_B和method_C。
当method_B发生异常时,我想回滚,我尝试了很多方法。
- 在method_B上添加@Transactional,但不添加rollback
- 在method_A上添加@Transactional,回滚,但在method_C之前不提交(method_C需要使用提交的数据)
- 添加@Transactional(with REQUIRED_NEW)在method_A, method_B结果为1,2
我使用PlatformTransactionManager
和TransactionTemplate
进行手动事务(删除@Transactional
)。