2015-10-15 223 views
2

我想从BATCH_JOB_EXECUTION-table连接BATCH_JOB_INSTANCE表获取10条最新记录。在Spring批处理中查询批处理作业元数据

那么我怎样才能访问这些表?

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

回答

2

如果您想从弹簧批代码执行此操作,您需要使用JobExplorer并在START_TIMEEND_TIME上应用过滤器。或者,只需使用JDBC将您想要的JOINSQL查询发送到数据库。元数据表的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... 
     } 
    } 
} 

祝你好运!

+0

看看JobExplorer,但我没有找到适当的方法来做这个查询。但是,JDBC可能是最简单的方法。谢谢! –

+0

请参阅我的编辑 – aviad