Posted on 九月 4, 2018
SpringBoot Mybatis事务
application增加注解
@EnableTransactionManagement
service或方法增加注解
@Transactional
这样该方法如果中途异常,则回滚。
默认配置下,spring只有在抛出的异常为运行时unchecked异常时才回滚该事务,也就是抛出的异常为RuntimeException的子类(Errors也会导致事务回滚),而抛出checked异常则不会导致事务回滚。
需要注意的是,直到方法执行完成之前,对数据库的修改并未生效,方法执行完成后,数据库操作才生效。
如果方法中有异步操作,则异步操作里的数据库操作不在事务内,直接生效。
参考:
https://www.cnblogs.com/kangoroo/p/8192503.html
https://blog.csdn.net/wohaqiyi/article/details/72895983
http://www.cnblogs.com/xusir/p/3650522.html
关于checked异常、unchecked异常: