@Transactional只回滚一部分
时间: 2023-10-12 12:06:31 浏览: 48
@Transactional注解可以用来对事务进行管理。在这个注解中,有两个参数需要注意,即rollbackFor和propagation。其中,rollbackFor用来指定在哪些异常发生时需要回滚事务。而propagation用来指定事务的传播行为。在这里,引用和引用分别展示了两种常见的@Transactional注解的使用方式。
引用展示了一个@Transactional注解的例子,其中rollbackFor参数被设为Exception.class,表示当出现Exception及其子类的异常时,需要回滚事务。而propagation参数被设为Propagation.REQUIRES_NEW,表示在当前方法执行时,将会创建一个新的事务。这样,如果这个方法中发生了异常,只会回滚这个方法的事务,不会影响到调用该方法的事务。
引用展示了另一个@Transactional注解的例子,其中rollbackFor参数同样被设为Exception.class,表示当出现Exception及其子类的异常时,需要回滚事务。而propagation参数被设为Propagation.REQUIRED,表示在当前方法执行时,如果已经存在一个事务,就沿用该事务,如果不存在事务,就创建一个新的事务。这样,如果这个方法中发生了异常,将会回滚整个事务。
所以,@Transactional注解可以根据设置的rollbackFor参数和propagation参数来控制事务的回滚范围。根据具体的需求,可以选择在方法级别或类级别使用@Transactional注解,并根据异常的情况来指定回滚范围。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [Transactional-循环中事务单独回滚](https://blog.csdn.net/qq_24409613/article/details/103280982)[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: 50%"]
- *3* [SpringBoot 之@Transactional事务回滚](https://blog.csdn.net/weixin_42286635/article/details/103525851)[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: 50%"]
[ .reference_list ]