- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Hibernate一对多、一对一、多对多映射之xml篇Hibernate一对多、一对一、多对多映射之xml篇
一对多/
确定谁是一方,谁是多方
某表的主键在中为外键,则某表为一方。如和班级对应,一个班级对应多个学生,所以班级为一方,学生多方。
和多方中代码的书写
ClassInfo如:private SetStudent stuSet;Student多方:一方类型的属性 注意:不写外键字段。代码如:private ClassInfo classInfo;
3
ClassInfo一方:set name=student 子元素:key column=哪个字段是别人的外键(class_id) / one-to-many class=”Student”/set
Student多方:many-to-one name=classInfo class=ClassInfo column=class_id
测试添加时的dao代码
ClassInfo c=new ClassInfo();
c.setCname(aaa);
Student s=new Student();
s.setStuName(gsc);
s.setAge(12);
s.setEmail(gsc@124.com);
SetStudent stuSet=new HashSetStudent();
stuSet.add(s);
c.setStuSet(stuSet);
Session session = HibUtil.getSession();
Transaction tx = session.beginTransaction();
session.save(c);
mit();
session.close();
二 一对一
外键关联:
1.1确定谁是一方,谁是多方是一对一的关系,所以任何一方是一方或多方都可以,但是当选定哪一方是一方,哪一方是多方后,配置信息就必须按照一方和多方的信息分别配置
po:双方各有一个对方的属性
po部分代码
Address类中:private Company company;
Company:private Address address;
1.3
一方:one-to-one name class property-ref=外键方对应的主键方属性/
多方:many-to-one name class column= unique
如选择ddress为一方,ompany为多方
!-- --
one-to-one name=company class=Company property-ref=companyId cascade=all /one-to-one
!-- 多方配置 --
many-to-one name=address class=Address column=address_id unique=true /many-to-one
1.4测试添加时的dao代码
Company c=new Company();
c.setCompanyName();
Address a=new Address();
a.setAddressName(美国);
// c.setAddress(a);
//上边的注释的代码可以不写,但下边一行的代码必须写,如果不写的话,虽然多方的记录也被添加但外键值为空
a.setCompany(c);
Session session=HibUtil.getSession();
Transaction ts=session.beginTransaction();
session.save(a);
mit();
session.close();
主键关联: 双方一对一关系的数据保证主键值一致即可。
2.1都是一方
并且的两个表主键po中的部分代码
Man类中
private Integer marriageId;
private Woman woman;
Woman类中
private Integer marriageId;
private Man man;
的两个表主键marriageId属性对应的column字段
主键生成方: 主键 采用自定义 或者 序列都行。
ont-to-one name class /
如:an
主键id name=marriageId column=marriage_id
generator class=sequence
param name=sequenceseq_tab_man/param
/generator
/id
!-- 一方配置
您可能关注的文档
- dna序列比对终极版符程序 2.doc
- DNA重组技术的基本工具 王京礼.ppt
- DPB-250L型铝塑铝泡罩包装机设备验证方案.doc
- DSP final10-answer.doc
- DSP最小系统设计方案.doc
- DT教你不用无线路由器就可以用电脑建立Wifi,让手机和其他电脑共享网络,亲身操作(图文).doc
- DXP复习资料(有答案版).doc
- D型滤池、快滤池、超滤.doc
- E02注塑成型不良原因及解决方法.doc
- EBZ-132悬臂式掘进机检修措施.doc
- DB44_T 2611-2025 城市排水管网有毒有害气体监测与风险分级管理技术标准.pdf
- DB44_T 2612-2025 竞赛类科普活动策划与实施服务规范.pdf
- DB43_T 2947-2024 烟草种子质量控制规程.pdf
- DB37_T 4836-2025 煤矿风量实时监测技术要求.pdf
- 叉车防撞系统,全球前22强生产商排名及市场份额(by QYResearch).docx
- 超滤膜,全球前18强生产商排名及市场份额(by QYResearch).docx
- DB62T 4172-2020 玉米品种 酒623规范.pdf
- DB62T 4160-2020 在用真空绝热深冷压力容器综合性能在线检测方法.pdf
- DB62T 4164-2020 辣椒品种 酒椒1号.pdf
- DB62T 4133-2020 公路隧道地质超前预报机械能无损探测技术规程.pdf
文档评论(0)