当前位置: 首页 > 知识库问答 >
问题:

Spring处理脏读,用JPAHibernate

能帅
2023-03-14

我们有一个在负载均衡器下运行的web应用程序。两个用户尝试执行相同的操作,例如,两个用户同时发出相同的订单,这会创建重复的订单。

在一个事务提交之前,另一个请求正在检查是否有任何顺序。它正在创建重复的条目。两个请求都试图同时处理。

  1. 用户A

我们尝试了以下选项,

  1. 将整个管理器锁定,锁定类型为OPTIMISTIC\u FORCE\u INCREMENT

但是这些选择都没有帮助。

请建议如何进行。

谢啦

共有1个答案

龙欣德
2023-03-14

设置包含下一个订单号的单独数据库表。

将订单的创建拆分为两个独立的数据库事务。

第一个读取并更新订单号。

第二个存储订单信息。

处理订单时,如果第一笔交易失败,应在继续第二笔交易之前重试。

 类似资料:
  • 我有一个批处理任务,从SQLServer读取记录并写入MARIADB。尽管我在批处理过程中实现了分区的概念,但该过程非常缓慢 下面是源系统和目标系统的数据源配置。 以下是配置的步骤和分区步骤 用读者和作者更新帖子 有人能介绍如何使用Spring Batch提高读写性能吗?

  • 我正在使用JpaPagingItemReaderBuilder查询一个DB,结果被插入到另一个DB中。 查询返回的结果没有任何问题,但我得到了一个错误与读取器的返回,在处理器中,您可以检查我的编码和错误下面。 有谁能给我一点启示吗?为什么我不能处理结果?

  • 我正在尝试创建一个应用程序,该应用程序使用spring-batch-excel扩展名来读取用户通过web界面上传的Excel文件,以便解析Excel文件中的地址。 当代码运行时,没有错误,但我得到的只是我日志中的以下内容。即使我的处理器和Writer中都有log/syso(它们从未被调用过,我所能想象的是它没有正确读取文件,也没有返回要处理/写入的数据)。是的,这个文件有数据,实际上有几千条记录。

  • 问题内容: 我有一对SQL Server 2014数据库设置为同步AlwaysOn可用性组。 两台服务器均设置为可用性模式,会话超时为50秒。次级被设置为可读的次级。 如果我写入主数据,然后立即(通过)从辅助数据中读取,则我将始终读取脏数据(即写入之前的状态)。如果我在写入和读取之间等待大约一秒钟,我将获得正确的数据。 这是预期的行为吗?如果是这样,我可以做些什么来确保从辅助读取是最新的? 我想将

  •  未读部分指玩家还没有执行过的剧本、已读部分则是玩家已经看过的部分。  KAG 中,支持未读/已读部分的文字显示速度不同,已读部分的 [l] 指令无效等功能。  未读/已读,是使用系统变量进行记录的、命名格式以 trail_ 开头。要进行未读/已读记录,请在 Config.tjs 里将 autoRecordPageShowing 设为 true 。 未读部分和已读部分  KAG 中、未读部分/已读

  • 我知道匹配模式解析器,这是Spring批处理提供的。我需要关于如何构造批处理作业的帮助,以便它可以读取循环中的记录类型5和记录类型6。