多对一映射 <many-to-one>
![](/upload/picture/pic/35371/045f3c85-d8d1-3353-8d02-d8a11f2d5b89.gif)
//User.hbm.xml
<hibernate-mapping>
<class name="User" table="t_user">
<id name="id">
<generator class="native"/>
</id>
<property name="name"/>
<many-to-one name="group" column="groupid"/>
<!--
<many-to-one name="group" column="groupid" cascade="all"/>
如果改成 <many-to-one name="group" column="groupid" unique="true"/>则变成一对一唯一外键关联,因为它限制了"多"一端只能为一
-->
</class>
</hibernate-mapping>
//Group.hbm.xml
<hibernate-mapping>
<class name="Group" table="t_group">
<id name="id">
<generator class="native"/>
</id>
<property name="name"/>
</class>
</hibernate-mapping>
一对一主键映射(双向,主键又做处键,默认根据主键加载)
![](/upload/picture/pic/35375/14288af5-b3e2-30b0-8a9a-00fe069ec10a.gif)
![](/upload/picture/pic/35373/485f16b9-c41e-3a52-a0bf-4e37430a53d7.gif)
<hibernate-mapping>
<class name="Person" table="t_person">
<id name="id">
<generator class="foreign">
<param name="property">idCard</param>
</generator>
</id>
<property name="name"/>
<one-to-one name="idCard" constrained="true"/>
</class>
</hibernate-mapping>
<hibernate-mapping>
<class name="IdCard" table="t_idcard">
<id name="id">
<generator class="native"/>
</id>
<property name="cardNo"/>
<one-to-one name="person"/> Person-->IdCard单向关联时,不用这句
</class>
</hibernate-mapping>
一对一外键关联映射(双向) 其中,单向是<many-to-one>的一种特例
![](/upload/picture/pic/35379/f77558e8-8a39-3570-a207-ee71a012b3f7.gif)
![](/upload/picture/pic/35381/abc4b9b2-ed47-3b50-814e-426cd9656a27.gif)
Person端是<many-to-one>,而IdCard端是<one-to-one>
一对一唯一外键关联双向,需要在另一端(idcard),添加<one-to-one>标签,指示hibernate如何加载
其关联对象,默认根据主键加载person,外键关联映射中,因为两个实体采用的是person的外键维护的关系,
所以不能指定主键加载person,而要根据person的外键加载,所以采用如下映射方式:
<one-to-one name="person" property-ref="idCard"/>
<hibernate-mapping>
<class name="Person" table="t_person">
<id name="id">
<generator class="native"/>
</id>
<property name="name"/>
<many-to-one name="idCard" unique="true"/>
</class>
</hibernate-mapping>
<hibernate-mapping>
<class name="IdCard" table="t_idcard">
<id name="id">
<generator class="native"/>
</id>
<property name="cardNo"/>
<one-to-one name="person" property-ref="idCard"/>
</class>
</hibernate-mapping>
分享到:
相关推荐
包含《多对多双向关联映射》《多对一单向关联映射》《多对一双向关联映射》《一对多单向关联映射》等文档,并有图解及例子,非常适合新手学习,尤其是刚刚接触hibernate,对映射关系不清楚的。。。。
Hibernate双向一对一关联映射(注解版)
Hibernate 一对一外键单向关联 Hibernate 一对一主键单向关联 Hibernate 一对一连接表单向关联 Hibernate 一对多外键单向关联 Hibernate 一对多连接表单向关联 Hibernate 多对一外键单向关联 Hibernate 多对一连接...
Hibernate 一对一唯一外键关联映射详解 Hibernate是一种流行的Java持久层框架,提供了多种关联映射方式,其中一对一唯一外键关联映射是一种常见的关联方式。在本文中,我们将详细介绍Hibernate一对一唯一外键关联...
hibernate双向一对多关联映射(注解版)
博文链接:https://shaqiang32.iteye.com/blog/201309
Hibernate关联关系映射 单向关联 │ ├─ 一对一外键单向关联 │ ├─ 一对一主键单向关联 │ ├─ 一对一连接表单向关联 │ ├─ 一对多外键单向关联 │ ├─ 一对多连接表单向关联 │ ├─ 多对一外键单向关联 │ ...
hibernate双向一对多关联映射(XML)
Hibernate的映射策略:一对一双向关联映射,有所有的测试用例,用以证明从任何一端都可以加载另一端信息。
Hibernate双向一对一关联映射(XML版)
1:Hibernate的关联映射,存在一对多和多对一映射,多对多映射: 1.1:一对多和多对一映射,举例说明: 学生和老师: 一个老师可以教多个学生 【一对多映射】 多个学生可以被一个老师教【多对一映射】 部门与员工: ...
博文链接:https://shaqiang32.iteye.com/blog/201312
Hibernate从入门到精通(六)一对一双向关联映射 - 赵帅 廊坊师范学院信息技术提高班
hibernate一对一主键关联映射(双向关联Person<---->IdCard) 9 hibernate一对一唯一外键关联映射(单向关联Person---->IdCard) 10 hibernate一对一唯一外键关联映射(双向关联Person<---->IdCard) 11 session ...
hibernate核心,一对多,多对多映射讲解,看了就完全搞明白了
主要介绍了hibernate一对多(多对一)双向关联映射的用法
Hibernate 注解映射支持多种关联关系的映射,包括多对一、一对多、双向一对多和双向一对一。 * 多对一映射:使用 @ManyToOne 和 @JoinColumn 注解,指定关联列。 * 一对多映射:使用 @OneToMany 注解,默认会使用...
http://blog.csdn.net/e421083458/article/details/8794127 该源码为Hibernate教程配套源码
NULL 博文链接:https://lijunabc.iteye.com/blog/438426
博文链接:https://llying.iteye.com/blog/220810