所以我有三個字段類映射到使用表休眠需要知道,如果每場發生了變化,我應該如何在Hibernate中模擬這種
Class Widget
{
String field1;
String field2;
String field3;
}
在應用程序啓動一些情況下,這些小部件將從外部文件添加到數據庫中,但是當我退出應用程序時,我需要知道應用程序啓動後用戶更改了哪些(如果有)這些字段,因此可以將更改保存迴文件。爲了記錄目的,我還需要存儲原始值。
我無法工作,無論我是否需要表中的狀態字段,或者是否已有一種使用Hibernate/Database的方法。
編輯:一個很好的解決方案如下。然而我使用Hibernate的主要原因是爲了減少內存消耗,所以當更改時存儲原始值對我來說不是一個好的解決方案,我想要存儲在數據庫中的everthing。所以,我有。如果你正在使用MySQL,那麼你可以從INFORMATION_SCHEMA數據庫表的最後更新時間像
SELECT UPDATE_TIME FROM `information_schema`.`tables`
WHERE TABLE_SCHEMA = 'dbName' AND TABLE_NAME = 'tableName'
否則簡單的解決方案將是添加一列用於更新時間戳創造這個新的問題How do I store a copy of each entity I add to database in Hibernate
說,我剛讀了關於版本,它似乎是擬optmistic併發控制,不是我試着這樣做,是這項工作的正確工具。我還想知道哪些領域發生了變化,不僅僅是物質變化了。 –
好吧,我想在我的情況下,它將使最有意義只需添加一個狀態字段爲每個字段 –
「我想knwo哪些字段改變了」你沒有在你的問題表明這一點。不過,在我讀完其他評論後,我也回答了你的後一個問題。無論如何,如果你想知道你的實體的'field1'在一個特定的時間跨度已經改變或沒有,那麼你必須有在該區間的極端一個實體的狀態的*快照*(它的起點和終點*點*) 。 –