如何在多线程异步的情况下保证事务?

2023-11-16

⚡️ 在Spring环境下,如果使用了 @Transactional 注解,那么当你的 inert 操作时异步的话,则会不在当前事务里面,那么后续的回滚操作,不会将这次异步操作的插入进行回滚,那么我们有方式来保证多线程异步场景下的事务吗?

@Service
public class TransactionAsyncService {
    @Autowired
    private PersonService personService;

    @Transactional
    void transactionAsync() {
        new Thread(() -> {
            personService.insertPerson("Cocowwy-1");
        }).start();

        personService.insertPerson("Cocowwy-2");

        throw new RuntimeException("手动回滚");
    }
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在多线程异步的情况下保证事务? 的相关文章

  • Spring Oauth2 使用 Spring Boot 2.0 返回 401 Unauthorized 错误

    我正在尝试使用 spring oauth2 实现 SSO 对于 spring 1 5 x 它工作得很好 但是 一旦我将 oauth 服务器应用程序升级到 spring boot 2 2 3 RELEASE 我什至无法进入登录表单 即将 ht
  • 无法使用 datastax java 驱动程序通过 UDT 密钥从 cassandra 检索

    我正在尝试使用用户定义的类型作为分区键将对象存储在 cassandra 中 我正在使用 datastax java 驱动程序进行对象映射 虽然我能够插入到数据库中 但无法检索该对象 如果我更改分区键以使用非 udt 例如文本 我就能够保存和
  • 使用 OkHttp 下载损坏的文件

    我编写的下载文件的方法总是会产生损坏的文件 public static String okDownloadToFileSync final String link final String fileName final boolean te
  • 为什么 jar 执行的通配符在 docker CMD 中不起作用?

    我有一个Dockerfile与以下CMD启动我的 Spring Boot 应用程序 FROM java 8 jre CMD java jar app file jar 当我尝试从创建的图像启动容器时 我得到 Error Unable to
  • ThreeTen 向后移植与 JSR-310 的比较

    由于某些原因 我们现在无法使用 java 8 我们仍然停留在 java 7 上 不过 我想使用新的JSR 310 date time APIs现在 使用官方向后移植 ThreeTen http www threeten org threet
  • 2^31 次方的 Java 指数错误 [重复]

    这个问题在这里已经有答案了 我正在编写一个java程序来输出2的指数幂 顺便说一句 我不能使用Math pow 但是在 2 31 和 2 32 处我得到了其他东西 另外 我不打算接受负整数 My code class PrintPowers
  • 使用 JDBC 连接到 PostgreSql 的本地实例

    我在 Linux 机器上有一个正在运行的 PostgreSql 本地实例 当我使用psql来自 shell 的命令我成功登录 没有任何问题 我需要通过 JDBC 连接到 PostgreSql 但我不知道我到底应该传递什么url参数为Driv
  • 如何在 IntelliJ IDEA 中运行 akka actor

    来自 Akka 网站文档 然后 这个主要方法将创建所需的基础设施 运行演员 启动给定的主要演员并安排 一旦主要参与者终止 整个应用程序就会关闭 因此 您将能够使用类似于以下的命令运行上面的代码 下列的 java classpath akka
  • 使用 Proguard 通过 Dropbox.com 库混淆 Android 应用程序

    我刚刚创建了一个需要 Dropbox com API 库的 Android 应用程序 我现在尝试在 发布 模式下构建应用程序 并希望在代码上运行混淆器以对其进行混淆 但是 每当我尝试运行 Proguard 时 都会收到以下错误 Progua
  • 类更改(例如字段添加或删除)是否保持 Serialized 的向后兼容性?

    我有一个关于 Java 序列化的问题 在这种情况下 您可能需要修改可序列化类并保持向后兼容性 我有丰富的 C 经验 所以请允许我将 Java 与 NET 进行比较 在我的Java场景中 我需要使用Java的运行时序列化机制序列化一个对象 并
  • Joshua Bloch 的构建器设计模式有何改进?

    早在 2007 年 我就读过一篇关于 Joshua Blochs 所采用的 构建器模式 的文章 以及如何修改它以改善构造函数和 setter 的过度使用 特别是当对象具有大量属性 其中大部分属性是可选的 时 本文对此设计模式进行了简要总结
  • 从三点求圆心的算法是什么?

    我在圆的圆周上有三个点 pt A A x A y pt B B x B y pt C C x C y 如何计算圆心 在Processing Java 中实现它 我找到了答案并实施了一个可行的解决方案 pt circleCenter pt A
  • Spring Data Rest 多对多 POST

    首先 让我解释一下我的用例 这非常简单 有一个用户实体和一个服务实体 我使用 UserService 作为连接实体 连接表 在用户和服务之间建立多对多关联最初 会有一些用户集和一些服务集 用户可以在任何时间点订阅任何服务 在这种情况下 将向
  • 在 Java 中通过 D-Bus MPRIS 访问 Clementine 实例

    我使用 Clementine 作为音乐播放器 它可以通过 D Bus 命令进行控制 在命令行上 使用 qdbus 我可以 Start Stop 暂停播放器 强制它跳过播放列表中的歌曲 检查播放列表的长度 检查播放列表中当前播放的曲目及其元数
  • 使用 Apache 允许 Glassfish 和 PHP 在同一服务器中协同工作

    是否可以建立从 Java 到 php 文件的桥梁 我有一个用 Java 编写的应用程序 我需要执行http piwik org http piwik org 这是用 PHP 编写的 在服务器中 我正在运行 PHP 但无法从浏览器访问 php
  • Selenium 单击在 Internet Explorer 11 上不起作用

    我尝试在 Internet Explorer 上单击 selenium 但它不起作用 我努力了element click moveToElement element click build perform javascript没事了 事实上
  • 检测到 JVM 正在关闭

    我有一个使用 addShutdownHook 处理 Ctrl C 的 Swing 应用程序 它工作正常 直到我的关闭任务之一调用一个在正常情况下更改 JLabel 文本的函数 此时它挂起 我认为问题是 Swing EDT 已终止或正在等待某
  • 如何让 Firebase 与 Java 后端配合使用

    首先 如果这个问题过于抽象或不适合本网站 我想表示歉意 我真的不知道还能去哪里问 目前我已经在 iOS 和 Android 上开发了应用程序 他们将所有状态保存在 Firebase 中 因此所有内容都会立即保存到 Firebase 实时数据
  • Java 的“&&”与“&”运算符

    我使用的示例来自 Java Herbert Schildt 的完整参考文献 第 12 版 Java 是 14 他给出了以下 2 个示例 如果阻止 第一个是好的 第二个是错误的 因此发表评论 public class PatternMatch
  • Spring 作为 JNDI 提供者?

    我想使用 Spring 作为 JNDI 提供程序 这意味着我想在 Spring 上下文中配置一个 bean 可以通过 JNDI 访问该 bean 这看起来像这样

随机推荐

  • 【空气检测仪专题】10.增加电池显示

    10 增加电池显示 增加了电池电量显示和充电电池动画 增加PM2 5传感器 并显示实时数据 效果如下图
  • Allegro 镜像丝印处理

    本文问题描述 Allegro 设计中丝印镜像了 在器件在正面 丝印也在正面 但是不管怎么 R 都转不过来 发现其实丝印已经被镜像至反面 可能也就需要简单左右镜像下 就可以了 如下图 艹作 在菜单栏点击view 选择Flip Design 点
  • PB(PowerBuilder)如何同消息队列(RabbitMQ)通讯

    参考文档 1 RabbitMQ入门 用途说明和深入理解 RabbitMQ入门 用途说明和深入理解 走错路的程序员的博客 CSDN博客 2 RabbitMQ进阶 管理 配置 RabbitMQ进阶 管理 配置 东孤熊猫的博客 CSDN博客 ap
  • Allegro16.6详细教程(四)

    2 PIN的定義 如果用第一種方式產生Netlist的話 就要對於一些Power pin加以定義 1 滑鼠點選想定義的零件 2 點選選單中Edit gt Part 3 用滑鼠點選想定義的Pin腳 4 點選功能表中Edit gt Proper
  • RCE 远程命令代码执行漏洞

    什么是REC Remote Command Code Execute 远程命令或者代码执行 通过构造特殊的字符串 将数据提交到WEB应用程序 并利用该方式外部程序或命令进行攻击 类似SQL注入 Web应用程序使用了一些可以执行系统命令 或者
  • DNS污染与DNS劫持

    先认识一下什么是DNS DNS 是域名系统 Domain Name System 的缩写 在Internet上域名与IP地址之间是一对一 或者多对一 的 域名虽然便于人们记忆 但机器之间只能互相认识IP地址 它们之间的转换工作称为域名解析
  • Linux 中的 chkconfig 命令及示例

    先决条件 Linux 中的运行级别 chkconfig命令用于列出所有可用的服务并查看或更新其运行级别设置 简而言之 它用于列出服务或任何特定服务的当前启动信息 更新服务的运行级别设置以及在管理中添加或删除服务 概要 chkconfig l
  • 小程序限制PC端打开 只可以在手机端打开的解决方案

    电脑版微信是支持运行小程序的 但是某一些小程序是限制在PC上打开的 那么是怎么判断打开的设备是否是Pc端呢 官方文档给出的方案是 wx getSystemInfo success res console log res model cons
  • 【Fiddler】利用FiddlerScript实现自制函数功能及一些基本实用函数。

    目录 前言 一 FiddlerScript是什么 二 代码部分 1 自定义功能函数名 2 实现Session的遍历 3 实现重发请求并选中新请求 4 常用FS函数 5 Fiddler中的延时器 总结 前言 关于FS Fiddler是我们熟悉
  • 怎样打造一个分布式数据库——rocksDB, raft, mvcc,本质上是为了解决跨数据中心的复制

    怎样打造一个分布式数据库 rocksDB raft mvcc 本质上是为了解决跨数据中心的复制 摘自 http www infoq com cn articles how to build a distributed database ut
  • Windows下jsp运行环境的配置方案

    Windows下jsp运行环境的配置方案 lt 一 gt 配置前的准备工作 软件名称 j2sdk 安装包名称 j2sdk 1 4 2 windows i586 exe 下载地址 http java sun com 软件名称 Jakarta
  • MySQL -调整列的约束

    调整列的完整性约束 主键PK 外键FK和 唯一键UK 1 新增 1 新建class表 列不设置约束 mysql gt create table class id int name varchar 64 teacher varchar 64
  • CUDA编程问题记录:能否用CPU多线程调用CUDA核函数

    问题 能否在主机端创建CPU多线程 在每个线程里调用设备端核函数的caller函数 进而实现进一步的并行运行 例如有5张图片 对于每张图片都有N个GPU线程对其进行像素操作 但是此时是逐一对这5张图片处理的 想在主机端创建5个CPU线程 每
  • STC单片机 普通 I/O 口中断功能介绍和使用

    STC单片机 普通 I O 口中断功能和使用 STC单片机普通 I O 口中断 不是传统外部中断 STC目前支持普通 I O 口中断的单片机 STC8部分以及STC32G STC8H 部分系列支持所有的 I O 中断 且支持 4 种中断模式
  • Apollo项目坐标系研究

    声明 本文系作者davidhopper原创 未经允许 不得转载 百度Apollo项目用到了多种坐标系 其中帮助文档提及的坐标系包括 全球地理坐标系 The Global Geographic coordinate system 局部坐标系
  • 雪花算法-项目中唯一ID的生成

    之前项目中使用雪花算法 生成全局唯一ID 记录一下 来源 https www cnblogs com relucent p 4955340 html 作者 永夜微光 package com wd cc common util Twitter
  • Texture::getSourceFileType()

    Texture getSourceFileType
  • 滑动窗口最大值——单调队列的实践

    一 单调队列的介绍 单调队列 即单调递减或单调递增的队列 而且 队首和队尾都可以进行出队操作 但只有队尾可以进行入队操作 它类似于下面这幅图 二 239 滑动窗口最大值 给你一个整数数组 nums 有一个大小为 k 的滑动窗口从数组的最左侧
  • vscode批量注释快捷键

    光标选中想要注释的所有代码 ctrl 取消同理
  • 如何在多线程异步的情况下保证事务?

    在Spring环境下 如果使用了 Transactional 注解 那么当你的 inert 操作时异步的话 则会不在当前事务里面 那么后续的回滚操作 不会将这次异步操作的插入进行回滚 那么我们有方式来保证多线程异步场景下的事务吗 Servi