请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

注解事务管理的问题

https://img1.sycdn.imooc.com/szimg//59ad4bf6000191fc06810147.jpg

老师你好,这是create.do的service方法代码,在方法头部使用了注解@Transactional(rollbackFor = Throwable.class,propagation=Propagation.REQUIRES_NEW)进行事务管理的配置了
,代码在执行批量插入订单详情数据的时候出错了,按照回滚的机制上面存储订单数据的操作应该是无效的,但是orderMapper.insertSelective执行成功了,这是为什么

正在回答

2回答

你好,同学,首先赞一下你,生成订单采用了事务。因为一期要把主流程打通,例如拦截器,统一异常处理是二期要处理的。还有事务,不是简单的一个回滚解决的事,还要讲事务隔离,传播等。这块要讲就讲透,要不就不讲,包括事务都会领着一起配置,还有单元测试等。所以留在二期,并且让大家知道为什么这么改,以及拦截器,拦截器组的原理等等。这块都不是3-5个小时能说清楚的。要花大精力去做,一期我们和慕课老师定的方案就是打通主流程~~这块放在一期不合适。

事务后续我们会单独讲的~~这块事务执行成功了,说明事务没有生效,一期事务我们没有调试。

建议同学找一下,mysql默认的配置,具体注解里面的需要对应上,用默认的propagation其实也是可以的,还有用junit 测试一下事务,可以百度一下哟。有专门的测试事务的注解。带回滚的。



0 回复 有任何疑惑可以回复我~
  • 提问者 qq_北城以北_7 #1
    老师好,问题解决了,SpringMVC的配置文件我修改成只扫描controller包下面的类事务管理的注解就可以正常运行了,是SpringMVC干扰了Spring扫描的原因吗
    回复 有任何疑惑可以回复我~ 2017-09-04 22:39:35
  • 提问者 qq_北城以北_7 #2
    非常感谢!
    回复 有任何疑惑可以回复我~ 2017-09-04 23:16:02
提问者 qq_北城以北_7 2017-09-04 22:38:57

老师好,问题解决了,SpringMVC的配置文件我修改成只扫描controller包下面的类事务管理的注解就可以正常运行了,是SpringMVC干扰了Spring扫描的原因吗

0 回复 有任何疑惑可以回复我~
  • Geely #1
    赞!测试事务我经常用junit里的事务测试,非常好用。
    这个不是干扰,主要是在mybatis配置数据源那一层就好了~~
    其实这个应该加在appli那个配置文件里,因为数据源配置在那里~~真的很赞你!
    回复 有任何疑惑可以回复我~ 2017-09-04 22:41:07
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信