ROPAGATION_NESTED:如果当前存在事务,就在嵌套事务内执行;如果当前没有事务,就执行与PROPAGATION_REQUIRED类似的操作,子事务回滚外部主事务也会受到影响进行回滚
```
@service
public class UserInvokeService {
@Autowired
private UserService userService;
@resource
private UserMapper userMapper;
@transactional
public void invokeUserService() {
User user = new User();
user.setName("zxx");
user.setAge(333333);
userMapper.insert(user);
userService.insertData();
}
}
@service
public class UserService {
@resource
private UserMapper userMapper;
@transactional(propagation = Propagation.NESTED)
public void insertData() {
User user = new User();
user.setName("inserByNested");
user.setAge(2222);
userMapper.insert(user);
int a = 1 / 0;
}
}
@SpringBootTest
public class TransactionalTest {
@Autowired
UserService userService;
@Autowired
UserInvokeService userInvokeService;
@test
public void testTransaction() {
userInvokeService.invokeUserService();
}
}
```