@Transactional回滚使用
时间: 2023-10-20 10:08:28 浏览: 91
在使用 @Transactional 注解时,可以通过 rollbackFor 属性进行配置来指定哪些异常发生时会触发事务回滚。这意味着当被标注的方法中抛出 rollbackFor 属性中指定的异常时,事务将会回滚。 举例来说,如果我们在 @Transactional(rollbackFor = Exception.class) 中指定了 Exception.class,那么当被标注的方法中抛出 Exception 或其子类的异常时,事务将被回滚。这样可以确保在异常发生时,事务可以正确地回滚到之前的状态。
相关问题
@transactional回滚
@Transactional注解在Spring中用于声明事务的行为。根据引用,默认情况下,@Transactional只对抛出RuntimeException异常的方法进行事务回滚。这意味着,如果在方法中抛出unchecked异常(继承自RuntimeException)或checked异常,则事务将回滚。但是,如果先调用一个没有事务的方法,然后再通过该方法调用具有事务的方法,由于直接通过原始的bean调用,而不是通过代理类,所以事务将不会启动,这就导致了@Transactional注解无效的现象。
如果希望无论抛出RuntimeException还是Exception,都要回滚事务,你可以使用如下配置:@Transactional(rollbackFor={RuntimeException.class, Exception.class})。
总结起来,@Transactional注解的回滚行为取决于抛出的异常类型,你可以根据需要来设置@Transactional注解的rollbackFor属性来实现回滚的控制。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [Spring中@Transactional事务回滚](https://blog.csdn.net/xiaojin21cen/article/details/83507174)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
NoSuchFileException @Transactional 回滚
NoSuchFileException是Java中的一个异常类,它表示在文件操作中找不到指定的文件或目录。当尝试访问一个不存在的文件或目录时,就会抛出该异常。
@Transactional是Spring框架中的一个注解,用于标记一个方法或类需要进行事务管理。当使用@Transactional注解时,如果方法执行过程中发生了异常,Spring会自动回滚事务,即撤销之前的操作,使数据回到事务开始之前的状态。
在具体应用中,如果在一个带有@Transactional注解的方法中发生了NoSuchFileException异常,Spring会捕获该异常并触发事务回滚操作。这意味着之前在该事务中所做的数据库操作将被撤销,数据库中的数据将回滚到事务开始之前的状态。
阅读全文