1.异常捕获处理, 自己try catch了异常, 没有抛出.
解决: 手动抛出这个异常
2.抛出的异常是 检查异常, Spring默认只会回滚非检查异常
必检异常类型常见的有:FileNotFoundException(未发现文档)、IOException(IO流异常,拒绝访问)(可以动手试试,必须处理的异常);
免检异常类型常见的有:NullPointerExceptin(对象未初始化或为空)、ArithmeticException(异常的运算条件)、IndexOutofBoundsException(越界异常)、IllegalArgumentException(抛出后无需处理的异常);
解决: 配置 rollbackFor属性为 Exception
3.同一个类中, 内部调用方法
4.非public方法 Spring 为方法创建代理、添加事务通知、前提条件都是该方法是 public 的
解决: 改为 public 方法