Hibernate中有一对一,一对多,多对一,一对多(双向),多对多集中关联映射。
其中一对多,多对一,一对多(双向)用的比较多。因为一对一太过简单可不用,多对多可以转换为一对多或多对一。
一对一(单向的主键关联映射)
在实际生活中的例子有:身份证对应人
在主表的映射文件中不需配置特殊的标签,
在子表的映射文件就要将主键的生成策略设置为foreign并在其中设置参数(param),其参数的name为property,其参数的值为关联对象的标识(因为在类中关联对象的标识直接用关联对象,所以其值为关联对象的引用)。因为是关联着的所以还需加个标签one-to-one的标签,此标签的含义是表示怎么加载它的引用对象。
实例:(子表那端)
注意:若要配置双向的,在端的pojo类中加入子表端的pojo类的引用,并且在主表端的映射文件中加入one-to-one标签指向子表端。这样不管是查哪一端都可以加载另一端的数据。
还有个一对一唯一外键关联映射是多对一关联映射的特例。
单向:在多端采用many-to-one标签,指定unique=true,这样就限制了多的一端的多重性唯一。
双向:在单向的前提下,在另一端,添加<one-to-one name=”对象引用名” property-ref=”外键端所需比较的属性名”/>,外键关联映射中,两个实体采用的是person的外键维护的关系,所以不能指定主键加载类,而需根据别的属性来加载,在property-ref中的值应是那个属性名。
多对一
只需在多端中的配置文件中配置<many-to-one>这个节点即可。
例:
在java代码中多端中设置一端所代表的对象即可。
例: (一端)
注意:在一端不需设置任何代码
多对多
需在两端的配置文件中都设置成set节点:
例:
注意:需设置 cascade="save-update" ,应为若cascade为all那么删除一方的某条数据,会将关联的所有数据全部删除
在java代码中两端设置另一端类型为Set即可。
例:
分享到:
相关推荐
hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,包含4个说明文档,分别详细解说了hibernate关联映射的...
该资源包含了一些常用的hibernate关联映射实例。包括一对多,多对多,继承映射,等,是学习hibernate的必备品
关于对Hibernate关联映射的一个总结,其中有各种映射的例子,详细用法 等
文件中包含关于hibernate 各个属性的解释
hibernate关联映射详解SSH 多对多,一对多关系对象映射
Hibernate关联映射.doc
hibernate关联映射
javaweb中的Hibernate关联映射的有关内容。
使用hibernate的多对一,一对多的关联,用idea环境搭建,适合刚刚开始学习hibernate搭建的同学看看
NULL 博文链接:https://zhouhaitao.iteye.com/blog/1171227
NULL 博文链接:https://selvemen.iteye.com/blog/459102
博文链接:https://penghao122.iteye.com/blog/211627