在 Spring 批处理中查询批处理作业元数据

Ole*_*e-M 5 java spring spring-batch spring-data-jpa

我想从与 BATCH_JOB_INSTANCE 表连接的 BATCH_JOB_EXECUTION 表中获取 10 条最新记录。

那么如何访问这些表呢?

在这个应用程序中,我使用了 Spring Data JPA。这是另一个使用 Spring Batch 并创建这些表的应用程序。换句话说,我只想运行一个 JOIN 查询并将它直接映射到我的自定义对象,只包含必要的字段。尽可能避免为两个表制作单独的模型。但我不知道这里的最佳方法。

avi*_*iad 3

如果您想从 Spring Batch 代码执行此操作,则需要使用JobExplorerSTART_TIME并在或上应用过滤器END_TIME。或者,只需使用 JDBC将SQL您想要的查询发送到数据库即可。可以在此处找到元数据表的JOIN信息。DDLs

编辑

如果你想尝试在 SpringBatch 中做到这一点,我想你需要迭代JobExecutions并找到你感兴趣的那些,然后做你的事情))一些事情。喜欢:

List<JobInstance> jobInstances = jobExplorer.getJobInstances(jobName);

for (JobInstance jobInstance : jobInstances) {
    List<JobExecution> jobExecutions = jobExplorer.getJobExecutions(jobInstance);
    for (JobExecution jobExecution : jobExecutions) {
        if (//jobExecution.getWhatever...)) {
        // do your thing...
        }
     }
} 
Run Code Online (Sandbox Code Playgroud)

祝你好运!