1、访问权限问题 Spring要求被代理方法必须为public,否则事务不生效。 2、方法用final修饰 Spring要求被代理方法必须不是static和final 3、方法内部调用 在同一个类中的方法,直接调用会使事务失效。 4、未被Spring接管 忘记加@Service注解 5、多线程调用 Spring的事务是根据数据库连接实现的,不同线程连接的数据库线程池的对象不同,所以无法实现事务。 6、表不支持事务 老版本MYSQL默认是Myisam,不支持事务 7、未开启事务 8、错误的传播特性 9、自己吞了异常 10、手动抛了其他的异常 11、自定义了回滚异常 12、嵌套事务回滚