为了账号安全,请及时绑定邮箱和手机立即绑定

新手上路,Java:为何事务的实际执行结果与预期不符

新手上路,Java:为何事务的实际执行结果与预期不符

SMILET 2019-10-25 21:54:20
@Controller@EnableAutoConfigurationpublicclassSampleController{@AutowiredprivateWeiboRepositoryweiboRepository;@AutowiredprivateTwitterRepositorytwitterRepository;@RequestMapping("/postWeibo")@ResponseBodypublicvoidpostWeibo(){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会单独开启新的事务,为何实际执行结果与预期不符合呢?
查看完整描述

2 回答

  • 2 回答
  • 0 关注
  • 232 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号