在Spring批处理

时间:2015-10-15 08:35:46

标签: java spring spring-batch spring-data-jpa

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

那么如何访问这些表呢?

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

2 个答案:

答案 0 :(得分:3)

如果您想从Spring Batch代码中执行此操作,则需要使用enter image description here并在START_TIMEEND_TIME上应用过滤器。或者,只需使用JDBC向数据库发送带有所需SQL的{​​{1}}查询。可以找到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...
        }
     }
} 

祝你好运!

答案 1 :(得分:1)

由于check.names = TRUE不再具有接口JobExplorer,因此我已经完成了此操作(此示例以.getJobInstances(jobName)为条件),并且适合流:

BatchStatus

要返回N个元素,可以使用其他容量的流(限制,最大,收集器等)。