Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.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
Spring boot springBoot表中映射类型的列_Spring Boot - Fatal编程技术网

Spring boot springBoot表中映射类型的列

Spring boot springBoot表中映射类型的列,spring-boot,Spring Boot,我在SpringBoot中有一个表,其中有一列我希望是映射类型的。下面是模型 @Entity @Table(name = "media") public class Media { @NotBlank private String url; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) Long id; @ElementCollection @CollectionTable(name="metaData",joinC

我在SpringBoot中有一个表,其中有一列我希望是映射类型的。下面是模型

@Entity
@Table(name = "media")
public class Media {

@NotBlank
private String url;

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
Long id;

    @ElementCollection
@CollectionTable(name="metaData",joinColumns=@JoinColumn(name="media_id"))
Map<String, Object> metaData= new HashMap<>();

}
@实体
@表(name=“媒体”)
公共类媒体{
@不空白
私有字符串url;
@身份证
@GeneratedValue(策略=GenerationType.IDENTITY)
长id;
@元素集合
@CollectionTable(name=“metaData”,joinColumns=@JoinColumn(name=“media\u id”))
映射元数据=新建HashMap();
}

我发现元数据类型有错误。错误是“集合元素映射的列元数据数量错误。

您需要定义映射表的格式

@ElementCollection
@CollectionTable(name=“media\u meta\u data”,joinColumns=@JoinColumn(name=“media\u id”))
@MapKeyColumn(name=“meta_key”)
@列(name=“meta_值”)
映射元数据=新建HashMap();
MapKeyColumn
annotation在
media\u meta\u data
中定义了对应于地图键的列

Column
annotation在
media\u meta\u data
中定义了对应于地图值的列


在名为
Media\u id
的联接表中,还有另一个键用于关联
Media
模型,您可以在
CollectionTable
annotation中定义该联接表。

您需要定义映射表应如何使用

@ElementCollection
@CollectionTable(name=“media\u meta\u data”,joinColumns=@JoinColumn(name=“media\u id”))
@MapKeyColumn(name=“meta_key”)
@列(name=“meta_值”)
映射元数据=新建HashMap();
MapKeyColumn
annotation在
media\u meta\u data
中定义了对应于地图键的列

Column
annotation在
media\u meta\u data
中定义了对应于地图值的列


还有另一个键用于连接名为
Media\u id
的联接表中的
Media
模型,您在
CollectionTable
注释中定义了该联接表。

@Aashish请再次检查您在回答中是否使用了相同的代码。可能错误是另一回事now@Aashish请仔细检查您在回答中使用的代码是否相同。也许错误现在是另一回事了