Spring batch 在面向chunck的步骤中执行数据库操作

Spring batch 在面向chunck的步骤中执行数据库操作,spring-batch,Spring Batch,我有一个“reader/processor/writer”形式的面向块的处理器,称为Job1。如果可能的话,在同一事务中,我必须在该作业结束后执行数据库EJB操作。我还有其他的工作(由tasklet实现),我可以简单地完成。我把这个作业称为tasklet中的操作,在完成exeute方法之前。但在这种情况下,我不知道该怎么做。在第一次尝试中,我通过一个步骤侦听器(外部事务)实现了它。但我不能,因为我的公司有uma体系结构规则,不在侦听器中调用数据库操作。我可以在tasklet的另一个步骤中执行它,

我有一个“reader/processor/writer”形式的面向块的处理器,称为Job1。如果可能的话,在同一事务中,我必须在该作业结束后执行数据库EJB操作。我还有其他的工作(由tasklet实现),我可以简单地完成。我把这个作业称为tasklet中的操作,在完成exeute方法之前。但在这种情况下,我不知道该怎么做。在第一次尝试中,我通过一个步骤侦听器(外部事务)实现了它。但我不能,因为我的公司有uma体系结构规则,不在侦听器中调用数据库操作。我可以在tasklet的另一个步骤中执行它,如果没有更好的,我会这样做,但是如果可能的话,我喜欢在Job1的同一个事务中执行这个操作

几个注意事项:

  • 在基于块的步骤(读/处理/写)中,通常会有多个事务。每个区块一个
  • 由于1,您通常无法在与中处理的项目位于同一事务中的步骤结束时执行db调用。它们在多个事务中处理
  • 也就是说,从听起来的情况来看,最好的选择是将您的呼叫放在基于区块的呼叫之后的另一个步骤中