@Transactional 失效

今天开发功能遇到一个坑,给一个类中方法配置事务

@Transactional(propagation = Propagation.REQUIRED,rollbackFor = RuntimeException.class)   ,让它遇到运行时异常回滚事务,但是事务一直没有生效,数据还是入了库。
我们看问题代码:

以上代码是controller层的importData调用service层的addeEmps带事务的方法。我们在server层用到了try,finally。这个不是service层内部无事务方法调用它,抛的异常也是Error和RuntimeException之一,
方法也是public修饰的,没有道理不生效啊?

但是,但是...它就是不生效!

经过反复调试,问题出在了service层的try,finally{}上,try{}里面虽然抛了异常,但是事务不会回滚,由于是做了以下改造,我们把try,catch的操作放在了controller层:


经过多次试验,事务正常回滚!!!

 

 


posted @   我要去巴萨  阅读(329)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示