一、多对一和一对多关联映射(多个员工属于同一部门)这几种关联映射后的关系模型都是一致的:
t_employee(id int pk, name varchar, departmentid int fk->t_department(id))
t_department(id int pk, name varchar)
1、多对一单向关联
实体模型:
com.lrh.hibernate.Employee(int id, String name, Department department)
com.lrh.hibernate.Department(int id, String name)
配置文件:
<!-- com.lrh.hibernate/Employee.hbm.xml -->
<hibernate-mapping>
<class name="com.lrh.hibernate.Employee" table="t_employee">
<id name="id"><generator class="native"/></id>
<property name="name"/>
<!-- <many-to-one>映射多对一关系。导出ddl时将自动生成一个外键 -->
<many-to-one name="department" column="departmentid"/>
</class>
</hibernate-mapping>
<!-- com.lrh.hibernate/Department.hbm.xml -->
<hibernate-mapping>
<class name="com.lrh.hibernate.Department" table="t_department">
<id name="id"><generator class="native"/></id>
<property name="name"/>
</class>
</hibernate-mapping>
2、一对多单向关联(少用)
实体模型:
com.lrh.hibernate.Employee(int id, String name)
com.lrh.hibernate.Department(int id, String name, Set employees)
配置文件:
<!-- com.lrh.hibernate/Employee.hbm.xml -->
<hibernate-mapping>
<class name="com.lrh.hibernate.Employee" table="t_employee">
<id name="id"><generator class="native"/></id>
<property name="name"/>
</class>
</hibernate-mapping>
<!-- com.lrh.hibernate/Department.hbm.xml -->
<hibernate-mapping>
<class name="com.lrh.hibernate.Department" table="t_department">
<id name="id">
<generator class="native"/>
</id>
<property name="name"/>
<set name="employees">
<!-- <key>指定引用至自身的外键表(t_employee)中的外键 -->
<key column="departmentid"/>
<!-- <one-to-many>映射一对多关系 -->
<one-to-many class="com.lrh.hibernate.Employee"/>
</set>
</class>
</hibernate-mapping>
3、双向关联
实体模型:
com.lrh.hibernate.Employee(int id, String name, Department department)
com.lrh.hibernate.Department(int id, String name, Set employees)
配置文件:
<!-- com.lrh.hibernate/Employee.hbm.xml -->
<hibernate-mapping>
<class name="com.lrh.hibernate.Employee" table="t_employee">
<id name="id"><generator class="native"/></id>
<property name="name"/>
<!-- <many-to-one>映射多对一关系 -->
<many-to-one name="department" column="departmentid"/>
</class>
</hibernate-mapping>
配置文件:
<!-- com.lrh.hibernate/Department.hbm.xml -->
<hibernate-mapping>
<class name="com.lrh.hibernate.Department" table="t_department">
<id name="id"><generator class="native"/></id>
<property name="name"/>
<!-- 双向关联中,为<set>加入”inverse=true”可以反转维护关系:
Hibernate将放弃从一的一端维护。也就是employee和department的关系必须使用employee维护,
操作department时Hibernate将不维护这个关系。
-->
<set name="employees">
<!-- <key>指定引用至自身的外键表(t_employee)中的外键 -->
<key column="departmentid"/>
<!-- <one-to-many>映射一对多关系 -->
<one-to-many class="com.lrh.hibernate.Employee"/>
</set>
</class>
</hibernate-mapping>
分享到:
相关推荐
包含《多对多双向关联映射》《多对一单向关联映射》《多对一双向关联映射》《一对多单向关联映射》等文档,并有图解及例子,非常适合新手学习,尤其是刚刚接触hibernate,对映射关系不清楚的。。。。
hibernate关联映射详解SSH 多对多,一对多关系对象映射
1:Hibernate的关联映射,存在一对多和多对一映射,多对多映射: 1.1:一对多和多对一映射,举例说明: 学生和老师: 一个老师可以教多个学生 【一对多映射】 多个学生可以被一个老师教【多对一映射】 部门与员工: ...
Hibernate 多对一外键单向关联 Hibernate 多对一连接表单向关联 Hibernate 多对多单向关联 Hibernate 一对一外键双向关联 Hibernate 一对一主键双向关联 Hibernate 一对一连接表双向关联 Hibernate 一对多外键双向...
Hibernate映射一对多关联关系
该资源包含了一些常用的hibernate关联映射实例。包括一对多,多对多,继承映射,等,是学习hibernate的必备品
Hibernate关联关系映射 单向关联 │ ├─ 一对一外键单向关联 │ ├─ 一对一主键单向关联 │ ├─ 一对一连接表单向关联 │ ├─ 一对多外键单向关联 │ ├─ 一对多连接表单向关联 │ ├─ 多对一外键单向关联 │ ...
关于对Hibernate关联映射的一个总结,其中有各种映射的例子,详细用法 等
Hibernate 关联关系映射分类
Hibernate对象关系映射一对多 很基础等文档
Hibernate4中映射关系图解。
NULL 博文链接:https://1028826685.iteye.com/blog/1536060
hibernate 对象关系映射总结hibernate 对象关系映射总结hibernate 对象关系映射总结
Hibernate_关联关系映射配置详解,希望能帮助广大java爱好者
Hibernate双向一对一关联映射(注解版)
hibernate 映射关系学习入门 多对多实体映射 源码
student与Score的Map集合关系 student与class的多对一 一对多映射
文件中包含关于hibernate 各个属性的解释
hibernate的关联关系映射,所有描述以选课系统这个案例来说明
hibernate里关联关系映射,各种关系解析,帮助大家搞清楚hibernate的关系映射