2
我想爲我的java應用程序實現一些簡單的審計功能。這是我的審計類的一個片段:將通用java類型保存/加載到postgresql數據庫列
public class Audit<C, T> {
public final Class<C> modifiedClass;
public final Date modificationTime;
public final MyFieldMeta<C, T> fieldMeta; //contains Class<T>
public final T newValue;
//constructor, etc...
}
當談到堅持這些審計對象,我寧願只有一個表,用於存儲獨立的什麼T
是所有品種。我正在使用postresql,而且我想知道將newValue
保存到列的最佳方法是什麼,然後再將它取回。
newValue
是不限於具有等同的PostgreSQL相當簡單的類型 - String
,Integer
,Date
等,所以存儲該值作爲text
並在單獨的列中的類型爲varchar
,然後映射回在java不會太難。有沒有一種更方便的方法?
正如我所說,我可以存儲類型和值,所以推斷類型不是問題。我想我的問題是a)是否有比我提到的選項更優雅的方式?和b)這種方法/體系結構對於簡單的審計功能通常有意義嗎? – 2011-05-10 14:42:11
這種方法很簡單,如果不是很優雅。更好一點和更靈活的是爲該類型設置一個單獨的列。對於簡單的審計,應該沒問題。請注意稍後在添加對新數據類型的支持方面的限制。如果數據類型不會改變(很多),那麼你不應該有維護問題。 – 2011-05-10 15:37:55