spring 事务处理小工具

本文详细探讨了Spring框架中@Transactional注解的使用细节,特别是其在类内部方法中不起作用的情况,以及未定义rollbackFor属性时受检异常不触发事务回滚的问题。通过示例说明了如何手动编写工具类来解决这些问题,确保事务的一致性和数据的安全。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述:

1. spring 事务管理中@Transactional 注解在类的内部方法(未暴露给外界调的方法)使用,不会回滚事务

2. spring 事务管理 @Transactional 注解如果没有定义rollbackfor类型,受检异常的抛出不会导致事务回滚。

 

问题示例1:

再外界调用方法printTiger(),虽然内部方法抛出了异常,事务不会回滚。导致db还是插入了一条记录。

问题示例2:

解决方案:

编写一个工具类,遇到异常手动回滚事务。

工具类如下:

测试代码如下:

当testInsert方法抛出错误的时候,小工具内部将事务回滚。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值