我有一個下面的場景,我想了解Spring中的嵌套事務處理以及傳播。其實我對此已經有了足夠的瞭解,但仍然不清楚一些事實。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
會犯一些數據嵌套數據和rollsback,會因此受到影響外部事務默認情況下是PROPOGATION_REQUIRED
還不清楚的一點仍然是什麼。如果交易被嵌套時,將他們在這種情況下開始新的?
「AnotherService.anotherInsert」調用將創建一個嵌套事務,因爲ServiceImpl.insert中已存在的事務已存在。 – Donatello