Springboot中嵌套事务失效原因分析
首先两个事务方法,其中一个调用另一个。
@Transactional(rollbackFor = Exception.class)
public void trance() {
try {
trance1();//调用下一个事务方法。
} catch (Exception e) {
e.printStackTrace();
}
User user = new User();
ShardingIDConfig shardingIDConfig = new ShardingIDConfig();
user.setId(shardingIDConfig.generateKey().longValue());
user.setName("trance");
user.setSex(0);
userMapper.create(user);
}
@Transactional(propagation = Propagation.REQUIRED)
public void trance1() throws Exception{
User user = new User();
ShardingIDConfig shardingIDConfig = new ShardingIDConfig();
user.setId(shardingIDConfig.generateKey().longValue());
user.setName("trance1");
user.setSex(1);
userMapper.create(user);
System.out.println(user.getId());
throw new RuntimeException();
}
添加依赖