@Transactional作用
时间: 2023-10-20 13:32:14 浏览: 155
@Transactional是一个用于声明事务属性的注解。它可以应用在类级别或方法级别,用于控制方法的事务行为。@Transactional注解具有一个可选的propagation属性,用于设置事务的传播行为。
具体而言,@Transactional注解可以用于以下几种情况:
1. @Transactional(propagation=Propagation.REQUIRED):如果存在事务,则加入事务;如果没有事务,则创建一个新的事务(默认)。
2. @Transactional(propagation=Propagation.NOT_SUPPORTED):容器不为该方法开启事务。
3. @Transactional(propagation=Propagation.REQUIRES_NEW):不管是否存在事务,都创建一个新的事务,原来的事务被挂起,新的事务执行完毕后,继续执行老的事务。
4. @Transactional(propagation=Propagation.MANDATORY):必须在一个已有的事务中执行,否则抛出异常。
5. @Transactional(propagation=Propagation.NEVER):必须在一个没有的事务中执行,否则抛出异常(与Propagation.MANDATORY相反)。
6. @Transactional(propagation=Propagation.SUPPORTS):如果其他bean调用该方法时,在其他bean中已声明事务,则使用事务;如果其他bean没有声明事务,则不使用事务。
总之,@Transactional注解可以用来定义方法的事务行为,通过设置propagation属性来控制事务的传播行为。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [@Transactional注解详解](https://blog.csdn.net/toBetterMe/article/details/102484347)[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_1"}}] [.reference_item style="max-width: 50%"]
- *3* [基于java的企业级应用开发:声明式事务管理.ppt](https://download.csdn.net/download/u011062044/85725570)[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_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文