Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/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
Java 在JPA中映射复杂映射_Java_Hibernate_Jpa_Persistence - Fatal编程技术网

Java 在JPA中映射复杂映射

Java 在JPA中映射复杂映射,java,hibernate,jpa,persistence,Java,Hibernate,Jpa,Persistence,我就是不能用一个字段如下的实体获得持久性: private Map<String, List<String>> filterValueRange; 私有映射filterValueRange; 到目前为止,我已经尝试过: @ElementCollection @JoinTable(name="ATTRIBUTE_VALUE_RANGE", joinColumns=@JoinColumn(name="ID")) @MapKeyColumn (name="F

我就是不能用一个字段如下的实体获得持久性:

private Map<String, List<String>> filterValueRange;
私有映射filterValueRange;
到目前为止,我已经尝试过:

@ElementCollection
    @JoinTable(name="ATTRIBUTE_VALUE_RANGE", joinColumns=@JoinColumn(name="ID"))
    @MapKeyColumn (name="Filter_Id")
    @Column(name="FILTER")
    private Map<String, List<String>> filterValueRange;
@ElementCollection
@JoinTable(name=“ATTRIBUTE\u VALUE\u RANGE”,joinColumns=@JoinColumn(name=“ID”))
@MapKeyColumn(name=“Filter\u Id”)
@列(name=“FILTER”)
私有地图筛选值范围;
但似乎还缺少一些东西

有人能给我指一下正确的方向吗

我使用jpa作为接口,但是引擎盖下有Hibernate


谢谢

我认为这是不可能的。您试图实现的是映射元素集合中的元素集合

如果我错了,你应该用 @CollectionTable注释来定义连接表

但我认为您需要定义表示值范围并具有自己的ElementCollection值的可嵌入性。然后,您可以将此可嵌入映射到filterValueRange,并通过它访问值列表


如果不需要按filterValueRange进行查询,可以将其序列化为Blob

JPA不支持映射嵌套集合关系,但是您可以通过稍微更改对象模型轻松克服这一问题,例如:

@OneToMany(mappedBy=“parent”)
@MapKeyColumn(name=“Filter\u Id”)
私有地图筛选值范围;
在相应的ValueRange实体中:

@ManyToOne
私人家长;

或者,您也可以查看以下帖子: