1)在方法中捕获异常没有抛出去
try {
xxx;
} catch (Exception e) {
e.printStackTrace();
//捕获未抛出
//throw new RuntimeException(e.getMessage());
}
2)非事务方法调用事务方法
3)事务方法内部调用事务方法
4)@Transactional标记的方法不是public
5)抛出的异常与rollbackFor指定的异常不匹配,默认rollbackFor指定的异常为RuntimeException()
6)数据库表不支持事务,比如MySQL的MyISAM
7)Spring的传播行为导致事务失效,比如: PROPAGATIONNEYER、PROPAGATION_NOT SUPPORTED