短小背景: 我有一個定期下載文件的軟件。這些下載的統計信息作爲DownloadResult實體存儲在數據庫中,該實體又與代表下載作業的實體相關聯。如何在JPA應用程序中進行常規數據庫清理?
現在我想確保在數據庫中只保留n個最新下載的固定數量。在經典的(非ORM/JPA)數據庫應用程序中的AFAIK,這可以通過存儲過程完成。
在JPA驅動的應用程序中,正確的方法是做什麼?
短小背景: 我有一個定期下載文件的軟件。這些下載的統計信息作爲DownloadResult實體存儲在數據庫中,該實體又與代表下載作業的實體相關聯。如何在JPA應用程序中進行常規數據庫清理?
現在我想確保在數據庫中只保留n個最新下載的固定數量。在經典的(非ORM/JPA)數據庫應用程序中的AFAIK,這可以通過存儲過程完成。
在JPA驅動的應用程序中,正確的方法是做什麼?
如果你想繼續使用Java的邊界,那麼你可以試試Quartz http://www.quartz-scheduler.org/,如果這不是你可以使用存儲過程的要求。
感謝您的回答。我會研究它。我已經在使用java.util.concurrent.ScheduledExecutorService。爲什麼我應該更喜歡使用Quartz來處理標準API中的類? – er4z0r 2010-02-04 07:11:51
其中之一:你不需要運行scheduler.schedule(),只需設置你的日程安排,而Quartz有更強大的設置日程安排的方式,例如你可以在每個星期六晚上設置日程安排。另外它更方便您設置來直接從調度程序中取消會話bean的方法 – Artem 2010-02-04 17:06:53
我對Quartz的理解是它的工作原理如何在EJB規範中指定 – Artem 2010-02-04 17:12:42
給這些下載一個序列號並刪除一次current_no
stacker
2010-02-03 22:16:02
簡單而聰明!然而,我並不想知道確切的標準(不管是序列號還是基於時間戳),但我想知道如何運行它。它讀起來像:我對存儲過程瞭解不多,而且我目前不太想學習它,如果可以用「java方式」來完成;-) – er4z0r 2010-02-03 22:53:08