事物传播行为与隔离级别介绍

简介: 事物传播行为与隔离级别介绍

事物传播行为介绍:

@Transactional(propagation=Propagation.REQUIRED)

如果有事务, 那么加入事务, 没有的话新建一个(默认情况下)

@Transactional(propagation=Propagation.NOT_SUPPORTED)

容器不为这个方法开启事务

@Transactional(propagation=Propagation.REQUIRES_NEW)

不管是否存在事务,都创建一个新的事务,原来的挂起,新的执行完毕,继续执行老的事务

@Transactional(propagation=Propagation.MANDATORY)

必须在一个已有的事务中执行,否则抛出异常

@Transactional(propagation=Propagation.NEVER)

必须在一个没有的事务中执行,否则抛出异常(与Propagation.MANDATORY相反)

@Transactional(propagation=Propagation.SUPPORTS)

如果其他bean调用这个方法,在其他bean中声明事务,那就用事务.如果其他bean没有声明事务,那就不用事务.
事物超时设置:

@Transactional(timeout=30) //默认是30秒

事务隔离级别:

@Transactional(isolation = Isolation.READ_UNCOMMITTED)

读取未提交数据(会出现脏读, 不可重复读) 基本不使用

@Transactional(isolation = Isolation.READ_COMMITTED)

读取已提交数据(会出现不可重复读和幻读)

@Transactional(isolation = Isolation.REPEATABLE_READ)

可重复读(会出现幻读)

@Transactional(isolation = Isolation.SERIALIZABLE)

串行化

MYSQL: 默认为REPEATABLE_READ级别

SQLSERVER: 默认为READ_COMMITTED

  • 脏读 : 一个事务读取到另一事务未提交的更新数据
  • 不可重复读 : 在同一事务中, 多次读取同一数据返回的结果有所不同, 换句话说,

后续读取可以读到另一事务已提交的更新数据.

  • 可重复读:在同一事务中多次读取数据时, 能够保证所读数据一样, 也就是后续读取不能读到另一事务已提交的更新数据
  • 幻读 : 一个事务读到另一个事务已提交的insert数据
相关文章
|
SQL 数据可视化 关系型数据库
DataX教程(05)- DataX Web项目实践
DataX教程(05)- DataX Web项目实践
4961 0
DataX教程(05)- DataX Web项目实践
|
8月前
|
机器学习/深度学习 人工智能 自然语言处理
《鱼与熊掌兼得:DataWorks中AI驱动的数据脱敏与可用性平衡术》
在数字化时代,数据成为企业核心资产,驱动业务决策与创新。DataWorks作为大数据处理平台,利用AI技术进行数据脱敏,确保隐私保护的同时维持数据可用性。通过生成对抗网络(GAN)和自然语言处理,DataWorks能生成既保留特征又符合隐私要求的脱敏数据,支持机器学习模型训练。此外,建立数据映射关系和应用数据增强技术,进一步提升脱敏数据的实用性和多样性。尽管面临挑战,DataWorks正不断优化算法,结合新兴技术,实现数据隐私与价值挖掘的平衡,助力数字经济健康发展。
409 29
|
10月前
|
存储 SQL 监控
计算效率提升 10 倍,存储成本降低 60%,灵犀科技基于 Apache Doris 建设统一数据服务平台
灵犀科技早期基于 Hadoop 构建大数据平台,在战略调整和需求的持续扩增下,数据处理效率、查询性能、资源成本问题随之出现。为此,引入 [Apache Doris](https://doris.apache.org/) 替换了复杂技术栈,升级为集存储、加工、服务为一体的统一架构,实现存储成本下降 60%,计算效率提升超 10 倍的显著成效。
449 0
计算效率提升 10 倍,存储成本降低 60%,灵犀科技基于 Apache Doris 建设统一数据服务平台
|
Java
Java基础之 JDK8 HashMap 源码分析(中间写出与JDK7的区别)
这篇文章详细分析了Java中HashMap的源码,包括JDK8与JDK7的区别、构造函数、put和get方法的实现,以及位运算法的应用,并讨论了JDK8中的优化,如链表转红黑树的阈值和扩容机制。
210 1
|
Shell 数据处理 开发者
|
负载均衡 搜索推荐 区块链
P2P网络中中央服务器的作用
P2P网络中中央服务器的作用
|
前端开发 JavaScript
基于React的简易在线购物车设计与实现
基于React的简易在线购物车设计与实现
344 0
|
前端开发 JavaScript Java
SpringBoot+MyBatisPlus+Vue+ElementUI实现前后端分离的物业管理系统
🍅程序员小王的博客:程序员小王的博客 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 如有编辑错误联系作者,如果有比较好的文章欢迎分享给我,我会取其精华去其糟粕 😊 如果需要源码,扫描主页左侧二维码,加我微信 一起学习、一起进步 🍅java自学的学习路线:java自学的学习路线
1694 0
SpringBoot+MyBatisPlus+Vue+ElementUI实现前后端分离的物业管理系统
|
数据安全/隐私保护 Android开发 iOS开发
阿里企业邮箱登陆入口
阿里企业邮箱登陆入口https://qiye.aliyun.com/ 阿里企业邮箱可以使用邮箱账号登录,也可以使用钉钉账号登录
7105 0
阿里企业邮箱登陆入口