2010-02-03 19 views
1

短小背景: 我有一個定期下載文件的軟件。這些下載的統計信息作爲DownloadResult實體存儲在數據庫中,該實體又與代表下載作業的實體相關聯。如何在JPA應用程序中進行常規數據庫清理?

現在我想確保在數據庫中只保留n個最新下載的固定數量。在經典的(非ORM/JPA)數據庫應用程序中的AFAIK,這可以通過存儲過程完成。

在JPA驅動的應用程序中,正確的方法是做什麼?

+0

給這些下載一個序列號並刪除一次current_no stacker 2010-02-03 22:16:02

+0

簡單而聰明!然而,我並不想知道確切的標準(不管是序列號還是基於時間戳),但我想知道如何運行它。它讀起來像:我對存儲過程瞭解不多,而且我目前不太想學習它,如果可以用「java方式」來完成;-) – er4z0r 2010-02-03 22:53:08

回答

1

如果你想繼續使用Java的邊界,那麼你可以試試Quartz http://www.quartz-scheduler.org/,如果這不是你可以使用存儲過程的要求。

+0

感謝您的回答。我會研究它。我已經在使用java.util.concurrent.ScheduledExecutorService。爲什麼我應該更喜歡使用Quartz來處理標準API中的類? – er4z0r 2010-02-04 07:11:51

+0

其中之一:你不需要運行scheduler.schedule(),只需設置你的日程安排,而Quartz有更強大的設置日程安排的方式,例如你可以在每個星期六晚上設置日程安排。另外它更方便您設置來直接從調度程序中取消會話bean的方法 – Artem 2010-02-04 17:06:53

+0

我對Quartz的理解是它的工作原理如何在EJB規範中指定 – Artem 2010-02-04 17:12:42

相關問題