2

有没有办法持久化 java.lang.Object 类型的 Entity 成员?

假设我有一个拥有成员的实体 DynamicProperty

private String name;
private Object value;

值可以是几种类型,基本上是非复杂的(字符串、布尔值、整数、十进制、枚举......)

有什么办法吗?以及 DB(Oracle) 列类型应该是什么。

4

2 回答 2

1

我找到了一个解决方案......因为我的对象可以定义为几种有限类型,基本类型我将对象标记为可序列化的 DB 列作为 BLOB 并且它有效。

@Type(type = "serializable")
private Object value;

有没有人知道这方面的表现?或可能发生的任何其他问题..

于 2013-05-09T08:43:52.983 回答
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;
    }
}

这是一种解决方法,但应该可以。我认为不可能将对象持久化为抽象的。

另外,看看@Embedded注释,它可能会有所帮助。

于 2013-05-08T14:26:30.477 回答