Hibernate培训:主从表概念及双向映射详解.pdfVIP

  • 0
  • 0
  • 约4.82千字
  • 约 4页
  • 2026-01-22 发布于北京
  • 举报

Hibernate培训:主从表概念及双向映射详解.pdf

培训要求

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)

1亿VIP精品文档

相关文档