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

新手上路,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 关注
  • 229 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信