- 0
- 0
- 约4.82千字
- 约 4页
- 2026-01-22 发布于北京
- 举报
培训要求
1)理解主表与从表的概念
2)掌握双向一对多映射
3)掌握双向一对一映射
4)掌握双向多对多映射
5)掌握组件和集合映射
6)掌握HQL查询(上)
第一章:主表与从表的概念
1.01概念
如果客户需求是:保存1个客户(主),级存2个订单(从)的话,
那么客户是主要的一方,客户对应的表customers就是主表,订单对应的表orders就是从表
因此,主表与从表不是,是根据客户需求而确定的
第二章:双向一对多映射
2.01客户(id/name/age)vs订单(id/orderno/price)
2.02传统:保存1个客户,级存2个订单,设置双向关联,hibernate会在控制台产生5条SQL
2.03在默认情况下,双方都会产生SQL语句,可能出现如下二种情况:
》SQL多余了,但不造成任何错误(双向一对多)
》SQL多余了,但会造成错误,比如主健突冲,在多对多映射时会出现(双向多对多)
2.04优化:保存1个客户,级存2个订单,设置双向关联,hibernate会在控制台产生:3条SQL
2.05什么情况下用cascade属性
当项目中你要操作A对象时,又要以同样的方式操作B对象,前提是A关联B,此时就可以使用cascade
属性,常用的取值是:none/save-update/delete/all,默认是none,all包括save-update和delete,但不包括
none属性值
2.06什么情况下用inverse属性
当项目中,出现一对多或多对多双向关联时,注意一定要双向关联,此时应该由多方负责一对多双
关联,来产生SQL语句,那么我们就要在一方(也就是单方)配置inverse属性,常用的取值是:true/false,
认是false,表示双方共同产生SQL语句,true表示对方(也就是多方)来产生SQL语句,提倡用true
第三章:双向一对一映射
3.01人(id/name)vs(id/num/location)
3.02保存人,级存
3.03双向一对一映射有二种方式:
》通过外健映射(提倡)
.hbm.xml文件
one-to-onename=cardcascade=all/
Card.hbm.xml文件
many-to-onename=column=S_IDunique=truenot-null=true/
》通过主健映射
.hbm.xml文件
one-to-onename=cardcascade=all/
Card.hbm.xml文件
one-to-onename=constrained=true/
第四章:双向多对多映射
4.01老师(id/name)vs学生(id/name)
4.02保存老师,级存学生,注意多对多双向关联,一定要设置inverse=true
4.03删除老师,不级联删除学生,不能修改cascade=”all”属性值
4.04更新老师,级联更新学生
4.05删除老师,级联删除学生
4.06映射文件
Student.hbm.xml文件
setname=teacherSettable=MIDD
keycolumn=STUDENTS_ID/
many-to-manyclass=Teachercolumn=TEACHERS_ID/
/set
Teacher.hbm.xml文件
setname=studentSettable=MIDDca
原创力文档

文档评论(0)