springboot @Transactional不生效
时间: 2023-10-15 12:25:35 浏览: 120
后端 Java Spring Data Jpa @Transactional 介绍
5星 · 资源好评率100%
在Spring Boot中,如果使用@Transactional注解事务不生效,可能有以下几个原因。首先,确保在启动类上没有显式添加@EnableTransactionManagement注解。因为SpringBoot的自动配置机制已经在TransactionAutoConfiguration中启用了该注解,不需要再在启动类上添加。其次,确保你的@Transactional注解被正确应用在需要开启事务的方法上。例如,你可能将它应用在了私有方法上,但是@Transactional只能应用在public方法上才能起作用。还有一种情况是你可能在同一个类中调用了@Transactional注解的方法,这时事务是不会生效的,因为事务的机制是基于代理的,而同一个类内部的方法调用并不会触发代理。解决办法是将被调用的方法移动到另一个类中。最后,如果你使用的是JPA,还需要确保你的方法被正确声明为抛出异常。因为只有在方法抛出RuntimeException或Error时,事务才会回滚。如果你抛出了其他类型的异常,事务将不会回滚。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [springboot中使用@Transactional注解事物不生效的原因(数据库事务隔离机制以及传播机制传播行为)](https://blog.csdn.net/zy103118/article/details/122296318)[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: 33.333333333333336%"]
- *2* [SpringBoot @Transactional 注解未生效](https://blog.csdn.net/weixin_45505313/article/details/103284559)[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: 33.333333333333336%"]
- *3* [Spring Boot中Spring data注解的使用](https://download.csdn.net/download/weixin_38506713/13687824)[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: 33.333333333333336%"]
[ .reference_list ]
阅读全文