猿问

小白,请教各位大佬!Java:为何事务的实际执行结果与预期不符谢谢哈~

@Controller
@EnableAutoConfiguration
publicclassSampleController{
@Autowired
privateWeiboRepositoryweiboRepository;
@Autowired
privateTwitterRepositorytwitterRepository;
@RequestMapping("/postWeibo")
@ResponseBody
publicvoidpostWeibo(){
Weiboweibo=newWeibo("Weibo");
weiboRepository.save(weibo);
postTwitter();
}
@Transactional(propagation=Propagation.REQUIRED,rollbackFor=Exception.class)
publicvoidpostTwitter(){
Twittertwitter=newTwitter("Twitter");
twitterRepository.save(twitter);
thrownewRuntimeException();
}
publicstaticvoidmain(String[]args)throwsException{
SpringApplication.run(SampleController.class,args);
}
}
代码逻辑:添加一条微博的同时添加一条推特,postTwitter手动抛出异常模拟回滚预期结果:Twitter表由于抛出异常造成回滚什么都没有添加,但Weibo表正常添加实际结果:虽抛出异常但Twitter、Weibo表均正常添加
请问我已经设置了@Transactional,事务级别为REQUIRED表明postTwitter会单独开启新的事务,为何实际执行结果与预期不符合呢?
一只斗牛犬
浏览 231回答 2
2回答
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答