- 方法是不是public修饰的,因为@Transactional注解只能public情况下会起用
- 数据库是否支持事务,如果是MySQL,注意表要使用支持事务的引擎,比如innodb,如果是myisam,事务是不起作用的。
- 抛出异常时你的异常是不是unchecked异常。java里面将派生于Error或者RuntimeException(比如空指针,1/0)的异常称为unchecked异常,其他继承自java.lang.Exception得异常统称为Checked Exception,如IOException、TimeoutException等。如果你还想回滚事务则需要注明回滚的异常
@Transactional(rollbackFor=Exception.class)
- 检查是不是在同一个类中调用了。比如a方法调用同一个类中的b方法。
- 异常是不是被你try catch住了。
@transactional注解不会回滚的情况
最新推荐文章于 2023-08-30 15:48:51 发布