@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會單獨開啟新的事務,為何實際執(zhí)行結果與預期不符合呢?
新手上路,Java:為何事務的實際執(zhí)行結果與預期不符
SMILET
2019-10-25 21:54:20