将通用java类型保存/加载到postgresql数据库列

将通用java类型保存/加载到postgresql数据库列,java,generics,postgresql,Java,Generics,Postgresql,我正在尝试为我的java应用程序实现一些简单的审计功能。下面是我的audit类的一个片段: public class Audit<C, T> { public final Class<C> modifiedClass; public final Date modificationTime; public final MyFieldMeta<C, T> fieldMeta; //contains Class<T> pu

我正在尝试为我的java应用程序实现一些简单的审计功能。下面是我的audit类的一个片段:

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...
}
公共类审计{
公共最终类修改类;
公开最终日期修改时间;
公共最终MyFieldMeta;//包含类
公共最终价值;
//建造师等等。。。
}
当涉及到持久化这些审计对象时,我更喜欢只使用一个表来存储所有种类,而不依赖于
T
是什么。我正在使用postresql,我想知道将
newValue
保存到列中,然后再次获取它的最佳方法是什么


newValue
仅限于具有postgresql等价物的相当简单的类型-
String
Integer
Date
等。因此,将值存储为
text
并将类型存储为
varchar
在单独的列中,然后将它们映射回java不会太困难。是否有更巧妙的方法?

一旦“扁平化”数据库中的数据类型,您将依靠逻辑将其转换回,这可能会导致问题。考虑值:<代码> 11.12 /代码>

这是第11.12节的内容吗,就像第几章一样?这是11.12的货币价值吗?那是12月11日吗


除非你能保证一个值总是能清晰地映射到一个类型,否则唯一的解决方法就是在字段中添加一个额外的类型标记,然后你必须将其解析出来,例如:
s11.12
表示“值的字符串11.12”。

正如我所说,我可以存储类型和值,因此,推断类型不是问题。我想我的问题是a)有没有比我提到的选项更优雅的方式?和b)这种方法/体系结构对于简单的审计功能一般来说有意义吗?这种方法很简单,如果不是很优雅的话。一个更好、更灵活的方法是为类型设置一个单独的列。对于一个简单的审计,它应该是好的。请注意在后面的部分中添加对新数据类型的支持的限制。如果数据类型不会改变(太多),那么在维护方面就不会有问题。