我有一个下面的场景,我想了解 Spring 中的嵌套事务处理以及传播。我实际上已经阅读了足够多的内容,但仍然不清楚一些事实。
public class ServiceImpl {
@Autowired
public AnotherService anotherService;
@Transactional // by default it is PROPOGATION_REQUIRED
public void insert (){
anotherService.anotherInsert();
}
}
public class AnotherServiceImpl {
@Transactional(propagation = Propagation.NESTED)
public void anotherInsert() {
insertSomeTestData();
}
private void insertSomeTestData() {
// call insert some test data recursively
// insert trasaction
insertSomeTestData();
}
}
在这种情况下,anotherInsert
将提交嵌套数据并回滚某些数据,这是否会影响默认情况下的外部事务PROPOGATION_REQUIRED
另外不清楚的一点是,如果事务嵌套,他们会在这种情况下开始一个新的事务吗?