不加Transactional 会有事务问题
时间: 2023-10-20 12:33:24 浏览: 38
不加@Transactional注解的话,可能会导致以下问题:
1. 事务不会自动提交或回滚: 在没有加上@Transactional注解的方法中,如果出现异常,事务不会自动回滚,也不会自动提交。这可能会导致数据不一致或者数据丢失的问题。
2. 外部事务无法控制内部事务: 如果某个方法没有@Transactional注解,而该方法内部调用了另一个有@Transactional注解的方法,那么外部事务将无法对内部事务进行控制。这可能导致事务的隔离级别和传播行为与期望不符。
3. 数据库连接未释放: 在没有加上@Transactional注解的方法中,如果手动获取数据库连接并执行操作,由于事务管理器无法感知操作的存在,可能会导致数据库连接未能正确释放,从而引发连接池资源耗尽的问题。
因此,为了保证数据的完整性和一致性,以及避免资源泄露,我们通常建议在需要控制事务的方法上添加@Transactional注解。这样可以确保事务的正确提交或回滚,并由事务管理器自动管理数据库连接的释放。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [spring 自定义事务管理器,编程式事务,声明式事务@Transactional使用](https://download.csdn.net/download/m0_37876057/86086691)[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* [Transactional:Spring事务性Junit测试](https://download.csdn.net/download/weixin_42160398/18854669)[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* [Java注解@Transactional事务类内调用不生效问题及解决办法](https://download.csdn.net/download/weixin_38706782/12725085)[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 ]