注解事务管理的问题

来源:12-2 创建订单,清空购物车等功能开发1

qq_北城以北_7

2017-09-04

http://szimg.mukewang.com/59ad4bf6000191fc06810147.jpg

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

写回答

2回答

Geely

2017-09-04

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

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

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



0
2
qq_北城以北_7
非常感谢!
2017-09-04
共2条回复

qq_北城以北_7

提问者

2017-09-04

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

0
1
Geely
赞!测试事务我经常用junit里的事务测试,非常好用。 这个不是干扰,主要是在mybatis配置数据源那一层就好了~~ 其实这个应该加在appli那个配置文件里,因为数据源配置在那里~~真的很赞你!
2017-09-04
共1条回复

从0开始 独立完成企业级Java电商网站服务端开发

前后端分离,数据库接口设计,架构设计,功能开发,上线运维

9476 学习 · 8804 问题

查看课程