@Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRES_NEW)
时间: 2023-11-11 13:16:53 浏览: 213
@Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRES_NEW) 是一个用于事务管理的注解。它包含两个属性,即rollbackFor和propagation。
rollbackFor属性指定了在哪些异常情况下需要进行回滚操作。在这个例子中,设置为Exception.class表示只要出现任何Exception的子类异常,都会触发回滚操作。
propagation属性指定了事务的传播级别。在这个例子中,设置为Propagation.REQUIRES_NEW表示每次调用被注解的方法时都会开启一个新的事务,而不会沿用已有的事务。
这个注解被用在方法上,用于标识方法需要在事务的支持下执行。在这个例子中,methodB方法被标记为@Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRES_NEW),表示该方法将在一个独立的事务中执行,并且发生异常时会触发回滚操作。
注意,如果methodB方法是在methodA方法中被调用的,而且它们在同一个类中,那么methodB抛出的异常不会导致methodA的事务回滚。因为@Transactional注解的传播级别是类级别的,所以回滚点会被标记在methodA的事务上。这意味着methodB中的update操作不会被回滚。只有当methodB方法单独被调用时,才会触发其独立的事务和回滚操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [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: 100%"]
[ .reference_list ]
阅读全文