[英]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.