Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate JPA:实体中ArrayList字段的类型_Hibernate_Jpa_Orm - Fatal编程技术网

Hibernate JPA:实体中ArrayList字段的类型

Hibernate JPA:实体中ArrayList字段的类型,hibernate,jpa,orm,Hibernate,Jpa,Orm,我在使用Hibernate-JPA时遇到了一个问题 问题是我有一个ArrayList类型的条目。此ArrayList可以具有任何类型的值,但仅限于一些基本值+字符串+时间戳。简而言之,它不是实体,而是基本值 我这里的问题是,我应该使用什么类型在实体中存储此类字段?@ElementCollection是您要寻找的。这允许您为非实体类定义映射,例如可嵌入类或基本类 您还可以使用@CollectionTable来定义表 @ElementCollection @CollectionTable(name

我在使用Hibernate-JPA时遇到了一个问题

问题是我有一个ArrayList类型的条目。此ArrayList可以具有任何类型的值,但仅限于一些基本值+字符串+时间戳。简而言之,它不是实体,而是基本值


我这里的问题是,我应该使用什么类型在实体中存储此类字段?

@ElementCollection是您要寻找的。这允许您为非实体类定义映射,例如可嵌入类或基本类

您还可以使用@CollectionTable来定义表

@ElementCollection
@CollectionTable(name = "data" ....)
private List<String> data;
@ElementCollection
@CollectionTable(name=“data”…)
私人名单数据;

是的,当我们有特定泛型类型的集合时,这非常有用。但在我的例子中,列表一次可以保存任何类型的值。列表可以具有字符串类型以及单个时间实例的时间戳。我尝试过在不指定任何泛型类型的情况下使用集合类型列表。但它给出了一个错误,EntityManagerFactory无法配置,因为没有指定任何泛型类型。我们可以使用列表作为
@ElementCollection
>的类型吗?你的数据库将如何查找它?上次我检查大多数RDBMS时,要求每个列都有一个列类型定义,而“String或Timestamp”不是其中之一。这里的目的是将基本值持久化为类型对象,如
List
。但这在JPA中是不允许的。它给出EntityManagerFactory创建错误。首先,您的数据库如何查找此错误?能否提供要将这些基本类型保存到的列的定义?