涉及到多表操作时,为了保证业务数据的一致性,一般会采用事务机制。
1、注解@Transactional配置的方法用非public权限修饰
2、注解@Transactional所在类非Spring容器管理的bean
3、注解修饰的方法被类的内部方法调用
4、业务代码抛出异常类型,非RunTimeExecption
在@Transactional注解中,如果不配置rollbackFor属性,那么只有在方法抛出运行时异常时(或者ERROR),才会回滚;
如果配置属性rollbackFor=Execption.class,那么可以在事务遇到非运行时异常时也回滚。
5、业务代码存在异常,但是被try catch语句捕获后,没有抛出异常
6、配置
需要配置注解@EnableTransactionManagement,但是在springboot工程中TransactionAutoConfiguration自动配置了