测试service实现类的时候,实现类里面并没有注释@Transactional,但是测试的事务仍提交成功(修改成功),这是为什么
Mysql事务的默认机制是:如果不加事务,会自动commit
就是使用的mysql数据库,昨天着急忘记了这一点,真是抱歉!
因为有其他Service方法里面有调用2个mapper的方法,有一个方法出现问题了,报错抛出了异常,事务自动回滚,所有就没有提交成功
而其他正确的方法,因为能正常运行,也没有抛出异常,所以测试的时候即使没有配置事务也会自动提交,
昨天就是一直在纠结这个问题
最好把你使用了什么数据库描述下,把你的代码也贴下,这样方便大家看问题~
新手上路,有什么不正确的地方还望大家指正一下!
因为还没有开通博客不能上传图片~(马上开通)~ ,所有就在这里用文字与大家分享一些mybatis@Transactional 事务注解的一些特性:
1.事务要成功提交,要保证方法为public
2.在执行的方法里面,要保证方法要正常运行,不要随便抛出异常,这样可能会导致事务回滚
有什么不足之处,大家可以提出来,我进行修改,大家也可以多多补充,方便以后有需要的人查阅呀!!