Я пытаюсь реализовать некоторые простые функции аудита для моего Java-приложения. Вот фрагмент моего класса аудита:
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 не будет слишком сложно. Есть ли подход к пижаму?