1:事务的传播行为和隔离级别和传播行为:https://www.cnblogs.com/zsychanpin/p/7074071.html
这里记录下事务为什么没生效。以及排除问题的方式。
一、接口事务配置
前提:配置spring的声明式实务,配置过程参考度娘。
@Transactional和@Transactional(rollbackFor = Exception.class)区别。
@Transactional注解:只会回滚checked异常。也就是系统能检测到的异常。在分类中称为RuntimeException. 例如:空指针
@Transactional(rollbackFor = Exception.class):会回滚unchecked异常。也就是自定义的业务异常。也包括系统超时、崩溃等。
二、单测配置
@Transactional
@Rollback(默认为true,也可以不用写这个配置。Transactional也能生效)
以上注解的功能:在save或者update的时候使用。不会真正修改数据。可保证测试方法被重复执行。
如果没有生效,排查过程:
1:检测spring事务的配置文件是否正确。特别是在分表的时候,检查transactionManager的ref指向。并不是指向jdbc的dataSource,而是指向分表的datasource。