当前位置: 首页 > news >正文

Spring 事务失效总结

前言

在使用spring过程中事务是被经常用的,如果不小心或者认识不做,事务可能会失效。下面列举几条

业务代码没有被Spring 容器管理

看下面图片类=没有Componet 或者Service 注解。
在这里插入图片描述

方法不是public的

@Transactional 注解只能用户public上,否则事务会失效。

发生内部自身调用

在这里插入图片描述

没有配置事务管理器

在这里插入图片描述

在代码中使用try catch 导致异常没有被抛出

在这里插入图片描述

代码中try catch 抛出的异常类型不对

在这里插入图片描述
因为 Spring 默认回滚的是 RuntimeException 异常,和程序抛出的 Exception 异常不匹配,所以事务也是不生效的。如果要触发默认 RuntimeException之外异常的回滚,则需要在 @Transactiona事务注解上指定异常类,需要在事务注解类上新增如下设置
Transactional(rollbackFor = Exception.class)。
##总结
以上几点都是事务不起作用的情况,当然事务生效还要一个最基本的前提,那就是数据库本身要支持事务。一些低版本的数据可能不支持

http://www.lryc.cn/news/339557.html

相关文章:

  • K8S节点kubectl命令报错x509: certificate signed by unknown authority
  • 【HTML】制作一个简单的实时字体时钟
  • servlet的三个重要的类(httpServlet 、httpServletRequst、 httpServletResponse)
  • 【软考】设计模式之命令模式
  • 波奇学Linux:ip协议
  • Efficient Multimodal learning from data-centric perspective
  • ubuntu下交叉编译ffmpeg到目标架构为aarch架构的系统
  • 【Linux C | 多线程编程】线程同步 | 条件变量(万字详解)
  • 【高阶数据结构】哈希表 {哈希函数和哈希冲突;哈希冲突的解决方案:开放地址法,拉链法;红黑树结构 VS 哈希结构}
  • 嵌入式之计算机网络篇(七)
  • C++|运算符重载(1)|为什么要进行运算符重载
  • 【ARM 裸机】汇编 led 驱动之烧写 bin 文件
  • 计算机网络之CIDR
  • 【无标题】系统思考—智慧共赢座谈会
  • 【Linux C | 多线程编程】线程同步 | 互斥量(互斥锁)介绍和使用
  • mid_360建图和定位
  • ThreadX在STM32上的移植:通用启动文件tx_initialize_low_level.s
  • 【python实战】游戏开发——恐龙跳跃小游戏
  • 成都百洲文化传媒有限公司电商领域的新锐力量
  • 1042: 中缀表达式转换为后缀表达式
  • 避免上下文切换--Linux原子函数
  • 塔面板php7.37.4版本不支持ZipArchive手工安装扩展方法
  • go语言并发实战——日志收集系统(一) 项目前言
  • Android Studio 之 Intent及其参数传递
  • 【黑马头条】-day06自媒体文章上下架-Kafka
  • 非线性特征曲线线性化插补器(CODESYS 完整ST代码)
  • vue3从精通到入门4:diff算法的实现
  • (三)C++自制植物大战僵尸游戏项目结构说明
  • 动态规划专练( 279.完全平方数)
  • 京东商品详情API接口(商品属性丨sku价格丨详情图丨标题等数据)