【发布时间】:2013-11-24 20:14:09
【问题描述】:
我在使用 Hibernate - JPA 时遇到了一个问题。
问题是我有一个 ArrayList 类型的条目。这个 ArrayList 可以有任何类型的值,但仅限于一些原始值 + String + Timestamp。简而言之,它们不是实体,而是基本值。
我的问题是我应该使用什么类型在实体中存储这种字段?
【问题讨论】:
我在使用 Hibernate - JPA 时遇到了一个问题。
问题是我有一个 ArrayList 类型的条目。这个 ArrayList 可以有任何类型的值,但仅限于一些原始值 + String + Timestamp。简而言之,它们不是实体,而是基本值。
我的问题是我应该使用什么类型在实体中存储这种字段?
【问题讨论】:
@ElementCollection 是您正在寻找的。这使您可以为非实体类定义映射,例如可嵌入或基本。
http://en.wikibooks.org/wiki/Java_Persistence/ElementCollection
您也可以使用@CollectionTable 来定义表格。
@ElementCollection
@CollectionTable(name = "data" ....)
private List<String> data;
【讨论】:
@ElementCollection 的类型吗?List<Object>。但这在 JPA 中是不允许的。它给 EntityManagerFactory 创建错误。