2015-10-15 218 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