2011-07-21 151 views
4

有可能是我不明白JPA @MapKey元素的語義的基礎知識。 我正在嘗試保存具有實體鍵和實體值的映射。架構是由hibernate生成的auto 。它生成一個連接表,將值實體映射到 包含實體(具有Map屬性)並忽略這些鍵。 如此有效,它只是將它視爲值的集合,並忽略了鍵, 據我所知。 我在這裏錯過了什麼? 謝謝困難使用JPA批註映射休眠映射

@Entity 
public class PracticeMap { 
    @javax.persistence.OneToMany(cascade = CascadeType.ALL) 
    @javax.persistence.MapKey 
    public Map<KeySample, ValueSample> getMap1() { 
     return map1; 
    } 

    //more unrelated/standard bits here 


} 

回答

2

看那javadoc of @MapKey - 這是當你需要把價值實體鍵的特定領域。

如果您的密鑰和值應該是不同的實體,則需要使用@MapKeyJoinColumn(在JPA 2.0中引入)。

+0

太棒了,這清除了我的東西。謝謝 ! –