我在不同的班级里有方法A和方法B。这两种方法都用@Transactional进行注释。方法A是调用B,在不同的事务中是否有调用B的解决方案,但不暂停A事务?B上的Propagation.REQUIRES_NEW提供了在调用时总是创建新事务但挂起调用方事务的可能性
发布于 2021-12-22 09:17:01
据我所知,您不能用注释REQUIRED_NEW来完成它。
但是spring还支持使用TransactionTemplate、TransactionDefinition进行手动事务处理。
我们只需使用一个PlatformTransactionManager就可以使用多个定义。
发布于 2021-12-23 02:58:51
事务传播行为Propagation.NESTED支持该需求。
请阅读春季正式文档:巢式
PROPAGATION_NESTED使用具有多个保存点的单个物理事务,可以回滚回滚。这种部分回滚允许内部事务作用域触发对其作用域的回滚,外部事务能够继续物理事务,尽管一些操作已经回滚。
关于Spring事务中嵌套传播的其他详细信息,也可以在这个回答中阅读。
https://stackoverflow.com/questions/70446441
复制相似问题