映射由jpa提交到表的对象

时间:2018-01-15 06:39:39

标签: java jpa

我有entity Class字段。字段的值可以是StringList<String>,因此我的引用类型为Object

class entity{
    private Object field;
}

我想通过Class将此Table映射到JPA。我该如何使用JPA?根据合同,我知道该字段可以是StringList<String>,我想将值保存在不在单独的表中的列中,例如使用ElementCollection.My DB是oracle。

1 个答案:

答案 0 :(得分:0)

您不应该映射对象。

在您的情况下,您有一个字符串或一个字符串列表。我的建议是绘制其中一个并按照你的意愿。

简单的方法是使用特定的分隔符映射字符串:string1;字符串2; STRING3; ....;并对字符串进行拆分以获得所有字符串。

String [] strings = string.split(“;”);

这样,如果你只有一个元素,那么你知道是一个字符串,如果没有,你有一个列表。

其他解决方案是创建一个id为value的表,并使用@OneToMany或@ElementCollection创建正确的jpa maping:

javax.persistence.ElementCollection

@ElementCollection
Map<Key, Value> strings;

http://docs.oracle.com/javaee/6/api/javax/persistence/ElementCollection.html

希望这有帮助。