【问题标题】:Execute database operations inside a chunck orientad step在面向块的步骤中执行数据库操作
【发布时间】:2015-06-10 20:37:18
【问题描述】:

我有一个名为 Job1 的“读取器/处理器/写入器”形式的面向块的处理器。如果可能,我必须在此作业结束后在同一事务中执行数据库 EJB 操作。我还有其他工作(由 Tasklets 实现),我可以以简单的方式完成这项工作。在完成执行方法之前,我在 tasklet 中简单地调用此操作。但在这种情况下,我不知道正确的做法。在第一次尝试中,我通过一个步骤监听器(外部事务)实现了它。但我不能,因为我公司有 uma 架构规则,不要在侦听器中调用数据库操作。我可以在这一步之后在 tasklet 的另一个步骤中执行它,如果我找不到更好的方法,我会这样做,但如果可能的话,我喜欢在 Job1 的同一事务中执行此操作。

【问题讨论】:

    标签: spring-batch


    【解决方案1】:

    几个注意事项:

    1. 在基于块的步骤(读取器/处理器/写入器)中,通常您会有多个事务。每个块一个。
    2. 由于 1,您通常不能在与处理项目在同一事务中的步骤结束时执行 db 调用。它们在多个事务中处理。

    话虽这么说,但最好的选择是将调用放在基于块的调用之后的另一个步骤。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-07
      • 1970-01-01
      • 2019-09-10
      相关资源
      最近更新 更多