Spring的@Transactional发生任何异常都会回滚事务?

根据官方文档

 可以发现,并不是只要出现了异常就会回滚,只有当发生的异常是「RuntimeException类型」(注意是类型,

xxxException instanceof RuntimeException

)为true的时候才会rollback。可以通过rollbackFor=“xxx”设置特定的回滚策略。

根据官方文档和源码提示,可以设置发生特定异常时不回滚:

除了「InstrumnetNotFoundException」异常之外,其他所有的「Exception」和「Error」都回滚事务。

 

posted @ 2020-09-14 09:36  HMingR  阅读(1664)  评论(0编辑  收藏  举报