采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师你好,这是create.do的service方法代码,在方法头部使用了注解@Transactional(rollbackFor = Throwable.class,propagation=Propagation.REQUIRES_NEW)进行事务管理的配置了,代码在执行批量插入订单详情数据的时候出错了,按照回滚的机制上面存储订单数据的操作应该是无效的,但是orderMapper.insertSelective执行成功了,这是为什么
你好,同学,首先赞一下你,生成订单采用了事务。因为一期要把主流程打通,例如拦截器,统一异常处理是二期要处理的。还有事务,不是简单的一个回滚解决的事,还要讲事务隔离,传播等。这块要讲就讲透,要不就不讲,包括事务都会领着一起配置,还有单元测试等。所以留在二期,并且让大家知道为什么这么改,以及拦截器,拦截器组的原理等等。这块都不是3-5个小时能说清楚的。要花大精力去做,一期我们和慕课老师定的方案就是打通主流程~~这块放在一期不合适。
事务后续我们会单独讲的~~这块事务执行成功了,说明事务没有生效,一期事务我们没有调试。
建议同学找一下,mysql默认的配置,具体注解里面的需要对应上,用默认的propagation其实也是可以的,还有用junit 测试一下事务,可以百度一下哟。有专门的测试事务的注解。带回滚的。
老师好,问题解决了,SpringMVC的配置文件我修改成只扫描controller包下面的类事务管理的注解就可以正常运行了,是SpringMVC干扰了Spring扫描的原因吗
非常感谢!
赞!测试事务我经常用junit里的事务测试,非常好用。 这个不是干扰,主要是在mybatis配置数据源那一层就好了~~ 其实这个应该加在appli那个配置文件里,因为数据源配置在那里~~真的很赞你!
登录后可查看更多问答,登录/注册
前后端分离,数据库接口设计,架构设计,功能开发,上线运维
10.4k 10
1.9k 22
1.5k 21
2.3k 21
2.1k 18