@Transactional的回滚
时间: 2023-10-20 17:08:23 浏览: 94
浅谈Spring中@Transactional事务回滚及示例(附源码)
5星 · 资源好评率100%
@Transactional是Spring框架中用于管理事务的注解。当一个方法被@Transactional注解标记后,该方法内部的所有数据库操作都将被纳入到一个事务中进行管理。如果在方法执行过程中发生了异常,该事务将会被回滚,也就是撤销这个方法所做的所有数据库操作。
例如,一个银行转账的方法可以使用@Transactional注解进行事务管理,如果转账过程中发生了异常,如账户余额不足,那么该事务将会被回滚,转账操作将被撤销。
在使用@Transactional注解时,需要注意以下几点:
1. 该注解只能用于public方法上。
2. 默认情况下,只有抛出RuntimeException及其子类的异常才会触发事务回滚,如果需要回滚其他类型的异常,可以通过设置rollbackFor属性来指定。
3. 如果在一个方法中调用了另外一个被@Transactional注解标记的方法,那么被调用的方法将会在调用者的事务中运行,除非该方法使用了Propagation.REQUIRES_NEW属性,这样会创建一个新的事务来运行该方法。
总之,@Transactional是一个非常方便的注解,可以帮助我们管理事务,避免出现数据不一致的情况。
阅读全文