对于JPA @MapKey元素的语义,我可能不了解一些基本原理。 我正在尝试保存具有实体键和实体值的Map。架构是自动的 由hibernate生成。它生成一个连接表,将值实体映射到 包含实体(具有Map属性)并忽略键。 所以有效它只是把它当作一组价值观而忽略了钥匙, 据我所知。 我在这里失踪了什么? 谢谢
@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
}
答案 0 :(得分:2)
查看javadoc of @MapKey
- 当您需要将值实体的特定字段视为键时使用它。
如果您的密钥和值应该是不同的实体,则需要使用@MapKeyJoinColumn
(在JPA 2.0中引入)。