[英]Mapping a complex Map in JPA
我只是无法获得具有这样的字段的实体的持久性:
private Map<String, List<String>> filterValueRange;
到目前为止,我已经尝试过:
@ElementCollection
@JoinTable(name="ATTRIBUTE_VALUE_RANGE", joinColumns=@JoinColumn(name="ID"))
@MapKeyColumn (name="Filter_Id")
@Column(name="FILTER")
private Map<String, List<String>> filterValueRange;
但是似乎仍然缺少一些东西。
有人能指出我正确的方向吗?
我正在使用jpa作为接口,但内部有Hibernate。
谢谢!
我不认为有可能。 您想要实现的是映射元素集合的元素集合。
万一我错了,您应该使用@CollectionTable批注定义可联接的。
但是我认为您需要定义可表示值范围并具有自己的ElementCollection值的Embedable。 比您可以将此可嵌入对象映射到filterValueRange并通过它访问值列表。
如果您不需要按filterValueRange进行查询,则可以将其简单地序列化为Blob。
JPA不支持映射嵌套的集合关系,但是您可以通过稍微更改对象模型来轻松地解决此问题,例如:
@OneToMany(mappedBy = "parent")
@MapKeyColumn (name="Filter_Id")
private Map<String, ValueRange> filterValueRange;
并在相应的ValueRange实体中:
@ManyToOne
private Parent parent;
另外,您也可以看看以下帖子:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.