有没有办法保持java.lang.Object类型的Entity成员?
假设我有一个实体DynamicProperty,它有一个成员
private String name;
private Object value;
值可以是几种类型,基本上是非复杂的(String,Boolean,Integer,Decimal,Enum ......)
有什么办法吗?以及DB(Oracle)列类型应该是什么。
答案 0 :(得分:0)
如果它们是基本类型,您可以随时尝试将它们存储为字符串,然后将它们转换为getter中的右类。
还有另一种选择 - 你可以创建一个类,它将保存值类型,并且将包含必要类型的字段,但只有一个被设置。像
这样的东西class Foo
{
Integer a;
Double b;
String c;
int type;
//getters and setters
public Object getObject()
{
if (type == 1)
return a;
else if (type == 2)
return b;
return c;
}
}
这是一个解决方法,但它应该工作。我认为不可能将Object保持为抽象。
另外,请查看@Embedded
注释,它可能会有所帮助。
答案 1 :(得分:0)
我找到了一个解决方案......因为我的对象可以定义为几种有限类型,基本类型我将对象标记为可序列化的DB列为BLOB并且它有效。
@Type(type = "serializable")
private Object value;
有没有人知道这个表现呢?或任何其他可能发生的问题..