@Primary
@Bean(name = "primaryTransactionManager")
public DataSourceTransactionManager transactionManager(@Qualifier("primaryDataSource") DataSource dataSource) {
return new DataSourceTransactionManager(dataSource);
}
@Bean(name = "secondTransactionManager")
public DataSourceTransactionManager transactionManager(@Qualifier("secondDataSource") DataSource dataSource) {
return new DataSourceTransactionManager(dataSource);
}
@RequestMapping(value = "add", method = RequestMethod.POST)
@ResponseBody
@Transactional(rollbackFor = Exception.class)
public BaseResponse add() {
BaseResponse response = new BaseResponse(StatusCode.Success);
User user = new User();
user.setName("张三");
user.setCode("10010");
userMapper.insertSelective(user);
SysConfig sysConfig = new SysConfig();
sysConfig.setName("颜色");
sysConfigMapper.insertSelective(sysConfig);
int i = 1/0;
return response;
}
发生异常后,子事务不会进行回滚
如果没有看过源码,不熟悉事务流程,分布式事务是解决这个问题的最简单的方式!
麻烦问下题主 解决了么 怎么解决的 谢谢