【发布时间】:2021-10-16 16:57:29
【问题描述】:
我有一个从事务 A 到事务 B 的调用并且事务 B 失败,如何只在事务 B 中回滚而不在事务 A 中回滚
@Autowired
ResourceServiceImpl resourceService;
// transaction A
@Transactional(propagation = Propagation.REQUIRES_NEW, noRollbackFor = RuntimeException.class)
void syncRestApi() {
for (RoleResourceRelation roleResourceRelation : roleResourceRelations) {
roleResourceRelationMapper.save(roleResourceRelation);
}
//call transaction B
try {
resourceService.test();
} catch (Exception e) {
}
}
@Service
@Transactional
public class ResourceServiceImpl {
//transaction B
public void test(){
throw new RuntimeException("");
}
}
谢谢
【问题讨论】:
标签: java spring spring-boot spring-transactions