难度使用JPA注释使用hibernate映射映射

有些基本的东西我不了解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 


}

最佳答案 查看
javadoc of @MapKey – 当您需要将值实体的特定字段视为键时使用它.

如果您的密钥和值应该是不同的实体,则需要使用@MapKeyJoinColumn(JPA 2.0中引入).

点赞