我有entity Class
字段。字段的值可以是String
或List<String>
,因此我的引用类型为Object
。
class entity{
private Object field;
}
我想通过Class
将此Table
映射到JPA
。我该如何使用JPA
?根据合同,我知道该字段可以是String
或List<String>
,我想将值保存在不在单独的表中的列中,例如使用ElementCollection.My DB是oracle。
答案 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
希望这有帮助。