有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

DB事务分组Spring,java寻找设计思路

正在使用SpringREST控制器、SpringJDBC和RDBMS构建应用程序。 该服务将在单个事务边界内执行多个DB操作。我们需要识别作为同一事务的一部分插入的行,以便将来进行报告

提议的解决办法

  • 在所有数据库表中创建事务\u Grp列
  • 在所有实体对象上添加字段transactionGroup
  • 在服务方法中,生成唯一id并将其设置为 方法中使用的所有实体对象上的transactionGroup 交易边界
  • 将相同的transactionGroup值插入到所有 是同一交易的一部分

有没有更好的解决方案/想法

多谢各位


共 (1) 个答案

  1. # 1 楼答案

    你的方法是正确的。批处理ID或事务组ID可以引入所有DML操作需要跟踪和处理的表(实体)

    许多人认为这会导致不必要的信息污染主表。因此,我们必须彻底扭转这种做法。可以引入一个表,将所有表(实体)的主键和实体名称映射到此表中的id。换句话说,可以引入一个名为transaction_groups的表,其中包含transaction_group_id、participant_entity_id和participant_entity_name,并映射该表中的所有信息

    选择属于你