2012-02-06 31 views
0

我正在使用Spring批處理。批次將從數據庫中每次讀取幾條記錄,看起來像這樣在java中合併periodes

personId | fromDate | toDate | someCode

* 100 | 05-05-2011 | 31-12-2011 | A

* 100 | 01-01-2012 | 31-12-2012 | A

100 | 01-01-2013 | 03-03-2013 | B

101 | 05-05-2011 | 31-12-2011 | A

*要合併的periodes。

我想要做的是合併具有相同代碼和相同personId,但不是不同代碼或personId的periodes。

第一個問題是我可以大塊這一步嗎?問題是commite間隔是靜態的,我可能無法獲得一個塊中的所有priodes。是否有可能根據一個人在桌上有多少記錄來創建動態塊?

下一個問題是合併期間的最佳方式是什麼?如果toDate爲31-12,下一個時間段從明年的01-01開始,則合併期間。

+0

看看http://stackoverflow.com/questions/8837487/how-to-process-logically-related-rows-after-itemreader-in-springbatch – 2012-02-11 21:52:15

回答

0

我解決了在每個對象中使用2個指針的問題。一個指向前一個時期,另一個指向下一個時期。 對於分塊,我需要讀取具有相同人員ID的所有行並將它們聚合。