mybatis+spring我用的是注解式声明式事务,现在想在一个业务方法中使用手动提交,但我用rollback主动回滚它还是提交了事务。请问是怎么原因
mybatis是不是默认了提交事务
<tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true" />
复制代码
mybatis是默认了提交事务,得根据你的需要,修改默认提交状态
可以看一下spring为mybatis整合提供的SqlSessionTemplate类,里面有一个mybatis的拦截器,
每次在还行mybatis的操作时的sqlsession是spring代理的一个对象,在finally中对sqlsession中是有操作的,你可以看一下源代码,希望对你有帮助
你要明白两个事即可,1、你全部用的都是注解方式,2、那么只要屏蔽注解方式的事务即可,
在Spring中有这么一个注解,@Transactional,这个注解默认值是空的,如果你不需要在某个地方进行系统默认的事务,你可以直接屏蔽,比如直接把transactionManager设置空,
你觉得这样行不行?
chossCourseDao是不是Spring自动注入的?
chossCourseDao应该也要从你那个ctx变量里面get出来,这样就可以了