エンティティを値で更新するプロセッサを使用することをお勧めします。プロセッサが直接実装している場合、ItemProcessor<T>
自動的にStepExecution
. を取得するStepExecution
には、次のいずれかを実行します。- StepExecutionListener を実装し、beforeStep
メソッドから変数として設定します - 呼び出されるメソッドを作成し、[something](StepExecution execution)
注釈を付けます@BeforeStep
リスナーを介して StepExecution を注入したら、jobExecutionId を取得してエンティティに設定できます。
public class MyEntityProcessor implements ItemProcessor<MyEntity, MyEntity> {
private long jobExecutionId;
@BeforeStep
public void beforeStep(StepExecution stepExecution) {
jobExecutionId = stepExecution.getJobExecutionId();
}
@Override
public MyEntity process(MyEntity item) throws Exception {
//set the values
item.setJobExecutionId(jobExecutionId);
//continue
return item;
}
}