一对多
O Dept Employee
关系属性:Set<Employee> emps=new HashSet<Employee> Dept
R 表
t_dept 普通的字段
t_employee 普通的字段+d_id(外键)
M 映射文件
<class name=" xx" table="Dept">
<id ....></id>
...
<!--关系属性
为了减少多次更新的操作,inverse="true":是key标签失效
-->
<set name="关系属性的名称" cascade="save-update" inverse="true">
<key column="d_id"/><!--外键-->
<one-to-many class="Employee"/>
</set>
</class>
<class name="Employee" table="employee">
<id>....</id>
....
<!--关系属性 employee 有一个外键列 d_id-->
<many-to-one name="dept" class="Dept" column="d_id"
cascade="save-update"></many-to-one>
</class>
当设置cascade=save-update 删除不级联删除
1.如果删除的当前对象能够获得明确的外键列的话,可以直接删除,不用再内存中解除关系
2.如果删除的当前对象不能获得明确的外键列的话,要先解除关系在删除
注意:inverse="true"
保存对象时,如果有关联对象,要现在内存中确定他们的关系,而且应该能双向设置
一对多的自身相关
以Emp表为例:一个雇员会有多个下属,一个雇员也只能有一个上级
从员工找经理(1:1)
class Emp{//配置员工
Integer empNo
String eName
String job
Emp mrg //经理也是员工,我们需要获得是Emp而不是一个经理的empNo
Date hireDate
Double sal //如果表当中的该字段允许为null ,对象中应该使用封装类
Double comm
Integer deptNo
}
从经理找员工{1:*}
class Emp{
Integer empNo
String eName
String job
Integer mrg
Date hireDate
Double sal
Double comm
Integer deptNo
Set<Emp> undering;//关系属性
}
自身相关的双向关系
class Emp{
Integer empNo
String eName
String job
Emp mrg //可以从员工查找经理
Date hireDate
Double sal
Double comm
Integer deptNo
Set<Emp> undering;//可以从经理查找员工
}
多对多
O Student Course 一个学生有多门课程,一个课程有多个学生
* : *
关系属性 Set<Course> Set<Student>
R 如何在数据库中表明多对多的关系,提供第三张表,作为关系表
t_student t_course 关系表 t_s_c
id name age id name score s_id c_id 两列联合唯一
1 haoren 22 1 java 1 1 1
2 clam 23 2 c++ 1 1 2
M 多对多映射文件 三张表两个外建
发表评论
-
Hibernateday06 QBC(Query by Criteria)
2012-07-24 16:59 866QBC (Query by Criteria)由hiberna ... -
Hibernateday06 SQLQuery 和NameQuery
2012-07-24 16:58 1252SqlQuery:在hibernate中使用sql Q ... -
Hibernateday06 HQL(Hibernate Query Language)
2012-07-21 22:18 1209HQL(hibernate query language) ... -
Hibernateday06学习笔记
2012-07-21 21:58 978HQL(hibernate query language) ... -
Hibernateday05继承关系union-subclass映射策略
2012-07-21 21:43 1017union-subclass映射策略 特点:父表 ... -
Hibernateday05继承关系joined-subclass映射策略
2012-07-21 00:07 8372.joined-subclass映射策略 特点:父 ... -
Hibernateday05继承关系subclass映射策略
2012-07-21 00:00 7632.继承关系 O Product //产品 ... -
Hibernateday05由一个主键类,将对象当中的联合作为主键的属性描述成一个对象【主键类的复合主键】
2012-07-20 23:53 8812.由一个主键类,将对象当中的联合作为主键的属性描述成一个对象 ... -
Hibernateday05对象当中的几个属性组合作为表的主键【实体类属性的复合主键】
2012-07-20 23:47 871复合主键 注意:1.对象必须实现序列化接口 1. ... -
Hibernateday05主键生成器(hilo)
2012-07-20 23:36 961主键生成器 generator class="xxx ... -
Hibernateday05学习笔记
2012-07-20 23:24 8101.一对多自身相关 员工找经理 关系属性 Emp ... -
Hibernateday04多对多关系
2012-07-19 23:19 716多对多 O Student C ... -
Hibernateday04一对多的自身相关(双向关系)
2012-07-19 01:04 735自身相关的双向关系 class Emp{ Inte ... -
Hibernateday04一对多的自身相关(从经理找员工)
2012-07-19 00:21 728从经理找员工{1:*} class Emp{ Integ ... -
Hibernateday04一对多的自身相关(从员工找经理)
2012-07-18 23:45 790对多的自身相关 以Emp表为例:一个雇员会有多个下属, ... -
Hibernateday03一对多双向操作
2012-07-17 23:44 6721.建表 create table g_dept( ... -
Hibernateday03一对多单向操作
2012-07-17 22:37 763一对多 1:* Employee ... -
Hibernateday03学习笔记
2012-07-17 22:25 6001.Hibernate关联关系 一对一的关联关系 1 ... -
Hibernateday02表的唯一外键
2012-07-24 16:57 863一对一:唯一外键:为外键加上唯一约束 公司 Com ... -
Hibernateday02表的共享主键
2012-07-16 21:55 798关联关系 1:1 人 Person ...
相关推荐
Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习...
希沃白板学习笔记.pdf希沃白板学习笔记.pdf希沃白板学习笔记.pdf希沃白板学习笔记.pdf希沃白板学习笔记.pdf希沃白板学习笔记.pdf希沃白板学习笔记.pdf希沃白板学习笔记.pdf希沃白板学习笔记.pdf
2022吴恩达机器学习笔记汇总(共10章节).zip2022吴恩达机器学习笔记汇总(共10章节).zip2022吴恩达机器学习笔记汇总(共10章节).zip2022吴恩达机器学习笔记汇总(共10章节).zip2022吴恩达机器学习笔记汇总(共10章节).zip...
Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Spring...
人工智能学习笔记,人工智能学习笔记,人工智能学习笔记人工智能学习笔记,人工智能学习笔记,人工智能学习笔记人工智能学习笔记,人工智能学习笔记,人工智能学习笔记人工智能学习笔记,人工智能学习笔记,人工智能...
CCNA学习笔记 CCNA学习笔记 CCNA学习笔记
云的学习笔记-云的学习笔记系统-云的学习笔记系统源码-云的学习笔记管理系统-云的学习笔记管理系统java代码-云的学习笔记系统设计与实现-基于ssm的云的学习笔记系统-基于Web的云的学习笔记系统设计与实现-云的学习...
云的学习笔记-云的学习笔记系统-云的学习笔记系统源码-云的学习笔记管理系统-云的学习笔记管理系统java代码-云的学习笔记系统设计与实现-基于ssm的云的学习笔记系统-基于Web的云的学习笔记系统设计与实现-云的学习...
nginx学习笔记(软件+学习笔记) 仅供学习交流! 后续会持续分享相关资源,记得关注哦! nginx学习笔记(软件+学习笔记) 仅供学习交流! 后续会持续分享相关资源,记得关注哦! nginx学习笔记(软件+学习笔记) ...
docker学习笔记,docker学习笔记,docker学习笔记,docker学习笔记,docker学习笔记,docker学习笔记,docker学习笔记,docker学习笔记,docker学习笔记,docker学习笔记,docker学习笔记,docker学习笔记,docker学习笔记,...
PHP个人学习笔记
ssh学习笔记1 ssh学习笔记1 ssh学习笔记1 ssh学习笔记1 ssh学习笔记1 ssh学习笔记1 ssh学习笔记1
Contiki学习笔记:进程、事件、etimer关系 Contiki 实例: Contiki学习笔记:创建两个交互进程 Contiki 主函数剖析: Contiki学习笔记:main函数剖析 Contiki学习笔记:启动一个进程process_start Contiki学习笔记...
java学习笔记java学习笔记.zipjava学习笔记.zipjava学习笔记.zipjava学习笔记.zipjava学习笔记.zipjava学习笔记.zipjava学习笔记.zipjava学习笔记.zipjava学习笔记.zipjava学习笔记.zipjava学习笔记.zipjava学习笔记...