Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用JPA注释使用hibernate映射地图的困难_Hibernate_Jpa_Map_Annotations_Mapping - Fatal编程技术网

使用JPA注释使用hibernate映射地图的困难

使用JPA注释使用hibernate映射地图的困难,hibernate,jpa,map,annotations,mapping,Hibernate,Jpa,Map,Annotations,Mapping,关于JPA@MapKey元素的语义,可能有一些基本的东西我不理解。 我正在尝试保存具有实体键和实体值的映射。模式是自动的 由hibernate生成。它生成一个连接表,将值映射到实体 包含实体(具有Map属性)并忽略键。 因此,它实际上只是将其视为一组值,而忽略键, 据我所知。 我错过了什么? 多谢各位 @Entity public class PracticeMap { @javax.persistence.OneToMany(cascade = CascadeType.ALL)

关于JPA@MapKey元素的语义,可能有一些基本的东西我不理解。 我正在尝试保存具有实体键和实体值的映射。模式是自动的 由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 


}
@实体
公开课实习地图{
@javax.persistence.OneToMany(cascade=CascadeType.ALL)
@javax.persistence.MapKey
公共地图getMap1(){
返回map1;
}
//这里有更多不相关/标准位
}
查看-当您需要将值实体的特定字段视为键时,会使用它

如果您的键和值应该是不同的实体,则需要使用(JPA2.0中介绍的)