我想从与BATCH_JOB_INSTANCE表连接的BATCH_JOB_EXECUTION表中获取10条最新记录。
那么如何访问这些表呢?
在这个应用程序中,我使用了Spring Data JPA。这是另一个使用Spring Batch并创建这些表的应用程序。换句话说,我只想运行一个JOIN查询并将其直接映射到我的自定义对象,只需要必要的字段。尽可能,我想避免为这两个表制作单独的模型。但我不知道这里最好的方法。
答案 0 :(得分:3)
如果您想从Spring Batch代码中执行此操作,则需要使用并在START_TIME
或END_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个元素,可以使用其他容量的流(限制,最大,收集器等)。