我們需要使用Hibernate將版本化的Java對象保存到Oracle數據庫中,以便每個版本都有一個有效日期和有效日期時間戳。這樣我們可以在特定的時間查詢對象。hibernate或oracle對時間線的支持?
Hibernate或Oracle 11g(或其他)提供什麼可以簡化這個嗎?
我們需要使用Hibernate將版本化的Java對象保存到Oracle數據庫中,以便每個版本都有一個有效日期和有效日期時間戳。這樣我們可以在特定的時間查詢對象。hibernate或oracle對時間線的支持?
Hibernate或Oracle 11g(或其他)提供什麼可以簡化這個嗎?
的Envers項目旨在使容易審計/ 版本的持久化類的。你所要做的就是用@Audited註釋你想要審計的持久類或它的一些屬性。對於每個審計實體,將創建一個表格,該表格將保存對實體所做更改的歷史記錄。 然後您可以毫不費力地檢索和查詢歷史數據。
看看這個文檔,我可以看到你可以選擇一個給定的修訂版本,但是我看不到你可以在哪裏使用一個至今的選擇。 – 2011-05-18 09:56:12
如果你有甲骨文進取精神版,您可以創建一個閃回存檔問題的表(一個或多個),然後使用普通的SQL,你可以做一個SELECT * FROM table_name AS OF timestamp
Oracle會在後臺管理一切你一旦創建了閃回檔案。
更多的細節都在手冊中:
http://download.oracle.com/docs/cd/E11882_01/appdev.112/e17125/adfns_flashback.htm#ADFNS01011
都閃回和envers是可能的解決方案,但我不能接受這兩種。 – 2011-06-30 10:58:38