小记——为什么@Transactional会失效?

简介: 小记——为什么@Transactional会失效?

前言


在项目开发中很多场景会用到事务,合理运用事务会提升代码的健壮性,我的猿子同事曾经做过一个实验,同一个方法中同时执行两个数据库语句,每1000条中大概有三到四条会出现数据插入不一致的情况,在数据量大的情况下,这个比例非常恐怖。


在事务的使用中应该注意以下三点:

1、使用@Transactional的方法必须是public修饰的。

2、使用@Transactional的方法不能再同类的其他方法中调用。

3、使用@Transactional只会对运行时异常回滚,IOException、SQLException及我们自定义的异常不会触发回滚。

重点是第三条,许多时候我们会自定义一下exception,这时候如何保证事务回滚呢?如下:@Transactional(rollbackFor = Exception.class)

这样就会保证我们遇到任何异常都会事务回滚!


相关文章
|
Linux 网络安全 数据安全/隐私保护
SoftEther软件搭建
SoftEther软件搭建
427 0
|
5月前
|
人工智能 自然语言处理 搜索推荐
AI智能导诊系统开发技术解析
智能导诊系统基于人工智能、大数据和医疗信息化技术,优化患者就医流程,提升资源匹配效率。其核心功能包括智能分诊、症状自评与风险评估及就医路径规划,通过自然语言处理、医学知识图谱、多模态交互等技术实现精准服务。系统可将门诊误挂率从23%降至6%,并显著提高急危重症识别效率,为患者提供全流程导航支持。
282 3
|
10月前
|
人工智能 自动驾驶 算法
AI的未来发展与挑战
本文探讨了人工智能(AI)的未来发展趋势和面临的主要挑战。通过对当前AI技术的概述,本文分析了AI在不同行业中的应用现状,并展望了未来的发展方向。同时,本文还讨论了AI发展中可能遇到的伦理、法律和技术难题,提出了相应的解决策略。
|
10月前
|
存储 安全 大数据
深入浅出操作系统:文件系统的秘密
【10月更文挑战第35天】本文将揭示文件系统背后的奥秘,从其基本概念到复杂的实现机制。我们将一起探索文件系统的结构和原理,并了解它如何影响我们的日常计算体验。通过简单的例子和比喻,文章旨在使读者对文件系统有一个清晰而深刻的理解,就像甘地所言:“你必须成为你希望在世界上看到的改变。”让我们一起成为理解操作系统的先行者。
|
SQL 数据库
在mybatis-plus怎么使用自定义的sql语句
在mybatis-plus怎么使用自定义的sql语句
1017 0
|
存储 安全 物联网
Android经典实战之跳转到系统设置页面或其他系统应用页面大全
本文首发于公众号“AntDream”,关注获取更多技巧。文章总结了Android开发中跳转至系统设置页面的方法,包括设备信息、Wi-Fi、显示与声音设置等,并涉及应用详情与电池优化页面。通过简单的Intent动作即可实现,需注意权限与版本兼容性。每日进步,尽在“AntDream”。
1162 2
|
存储 机器人
ROS2教程 07 参数Param
本文是关于ROS2(机器人操作系统2)中参数(Parameter)机制的教程,介绍了ROS2中参数的使用和管理,包括列出、获取、设置、删除参数,以及如何通过命令行和launch文件在启动节点时配置参数,并通过示例代码展示了如何在ROS2节点中声明和使用参数。
701 1
|
机器学习/深度学习 人工智能 算法
Flash Attention稳定吗?Meta、哈佛发现其模型权重偏差呈现数量级波动
【5月更文挑战第23天】Meta和哈佛的研究发现Flash Attention,一种用于加速Transformer模型的优化技术,可能导致数值偏差,影响模型权重稳定性。实验显示Flash Attention在BF16精度下的偏差是基线的10倍,权重偏差是低精度训练的2-5倍。虽然能提升效率,但其引入的不稳定性对训练过程构成挑战。该研究提出新方法评估数值偏差对训练稳定性的影响,为未来优化技术的研究提供了方向。[论文链接:https://arxiv.org/pdf/2405.02803]
248 2
|
SQL Java 关系型数据库
【MyBatis-Plus】快速精通Mybatis-plus框架—核心功能
【MyBatis-Plus】快速精通Mybatis-plus框架—核心功能
927 0
【MyBatis-Plus】快速精通Mybatis-plus框架—核心功能
|
Cloud Native Java 开发者
新一代Java框架Quarkus的性能优化与应用
新一代Java框架Quarkus的性能优化与应用