簡體   English   中英

在JPA中映射復雜的地圖

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM