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
私人家长;
或者,您也可以查看以下帖子: