在Spring批处理中查询批处理作业元数据
问题描述:
我想从BATCH_JOB_EXECUTION-table连接BATCH_JOB_INSTANCE表获取10条最新记录。在Spring批处理中查询批处理作业元数据
那么我怎样才能访问这些表?
在这个应用程序中,我使用了Spring Data JPA。这是另一个使用Spring Batch并创建这些表的应用程序。换句话说,我只想运行一个JOIN查询并将其直接映射到我的自定义对象中,只需要必要的字段。只要有可能,我想避免为这两张桌子制作单独的模型。但我不知道这里最好的办法。
答
如果您想从弹簧批代码执行此操作,您需要使用JobExplorer并在START_TIME
或END_TIME
上应用过滤器。或者,只需使用JDBC将您想要的JOIN
的SQL
查询发送到数据库。元数据表的DDLs
可以找到here。
编辑
如果你想尝试做在SpringBatch,我想你需要通过JobExecutions
迭代,找到您所感兴趣的,然后做你的事))someth。如:
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...
}
}
}
祝你好运!
看看JobExplorer,但我没有找到适当的方法来做这个查询。但是,JDBC可能是最简单的方法。谢谢! –
请参阅我的编辑 – aviad