




已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录 徐伟 目目 录录 1关系映射关系映射 1 1 1 单向关联单向关联 1 1 1 1 一对一外键单向关联 1 1 1 2 一对一主键单向关联 4 1 1 3 一对多外键单向关联 5 1 1 4 多对一外键单向关联 8 1 2 双向关联双向关联 10 1 2 1 一对一外键双向关联 10 1 2 2 一对一主键双向关联 12 1 2 3 一对多外键双向关联 13 1 2 4 多对多双向关联 15 关系映射 徐伟 1 1关系映射关系映射 1 1 单向关联 1 1 1 一对一外键单向关联 1 模型介绍 一个人 Person 对应一个地址 Address 2 实体 无 getter 和 setter Peron private Long oid private String personid private String name private Address addressfk Address private Long oid private String addressid private String addressdetail 3 表模型 以下是地址表 表 1 地址表 以下是人物表 其中 addressid 是外键引用地址表的 addressid 表 2 人物表 关系映射 徐伟 2 4 映射文件 Address hbm xml Person hbm xml 5 测试方法 public class Test public static void main String args Session s HibernateUtil getSession try s beginTransaction Person p new Person 关系映射 徐伟 3 p setName xuwei p setPersonid 200610801232 Address a new Address a setAddressid 杨家冲 6 号 a setAddressdetail 自贡市大安区 p setAddressfk a s save a s save p s getTransaction commit catch HibernateException e e printStackTrace s getTransaction rollback finally s close 6 测试结果 a s save a s save p 正常保存 b s save p s save a 异常发生 异常信息 not null property references a null or transient value c s save a 能够插入 但信息不全 只插入一条记录 d s save p 异常发生 异常信息 not null property references a null or transient value 关系映射 徐伟 4 1 1 2 一对一主键单向关联 1 要改的地方只有一个就是 person hbm xml addressfk 2 测试结果 a s save a s save p 正常保存 推荐方式 先插入父表 再插入子表 b s save p s save a 正常保存 也是先插入父表 再插入子表 c s save a 能够插入 但信息不全 只插入一条记录 d s save p 正常保存 而且插入两条记录 关系映射 徐伟 5 1 1 3 一对多外键单向关联 1 模型介绍 一个人 Person 对应多个地址 Address 比如家庭地址 公司地址 2 实体 Address private Long aid private String addressid private String addressdetail Person private Long pid private String personid private String name private Set addresses new HashSet 3 表模型 以下是地址表此表是多的一方 pid 为外键 表 3 地址表 以下是人物表 表 4 人物表 4 映射文件 Address hbm xml 关系映射 徐伟 6 Person hbm xml 5 测试方法 public class Test public static void main String args Session s HibernateUtil getSession try s beginTransaction Person p new Person Address a1 new Address Address a2 new Address a1 setAddressid 杨家 1 号 a1 setAddressdetail 自贡市大安区 a2 setAddressid 杨家 2 号 a2 setAddressdetail 自贡市大安区 关系映射 徐伟 7 p setName xuwei p setPersonid 1 p getAddresses add a1 p getAddresses add a2 s save a1 s save a2 s save p s getTransaction commit catch HibernateException e e printStackTrace s getTransaction rollback finally s close 6 测试结果 a s save a1 s save a2 s save p 正常保存 信息 Hibernate insert into address addressid addressdetail values Hibernate insert into address addressid addressdetail values Hibernate insert into person personid name values Hibernate update address set pid where aid Hibernate update address set pid where aid b s save p 正常保存 同上 c s save a1 s save a2 正常保存 但信息不全 Hibernate insert into address addressid addressdetail values Hibernate insert into address addressid addressdetail values 关系映射 徐伟 8 1 1 4 多对一外键单向关联 1 模型介绍 多个人 Person 对应一个地址 Address 2 实体 Address private Long oid private String addressid private String addressdetail Person private Long oid private String personid private String name private Address addressfk 3 表模型 以下是地址表 表 5 地址表 以下是人物表 多个人对应一个地址 表 6 人物表 4 映射文件 Person hbm xml 关系映射 徐伟 9 5 测试方法 Person p1 new Person Person p2 new Person Address a new Address p1 setName xuwei p1 setPersonid 001 p2 setName weixu p2 setPersonid 002 a setAddressid 杨家 1 号 a setAddressdetail 自贡市大安区 p1 setAddressfk a p2 setAddressfk a s save a s save p1 s save p2 6 测试结果 a s save a s save p1 s save p2 正常保存 信息为 Hibernate insert into address addressid addressdetail values Hibernate insert into person personid name addressid values Hibernate insert into person personid name addressid values b s save p1 s save p2 s save a 正常保存 信息 Hibernate insert into person personid name addressid values Hibernate insert into person personid name addressid values Hibernate insert into address addressid addressdetail values Hibernate update person set personid name addressid where pid Hibernate update person set personid name addressid where pid c s save p1 s save p2 发生异常 异常信息 关系映射 徐伟 10 Hibernate insert into person personid name addressid values Hibernate insert into person personid name addressid values org hibernate TransientObjectException object references an unsaved transient instance 1 2 双向关联 1 2 1 一对一外键双向关联 1 模型介绍 同一对一单向关联 2 实体 Person private Long oid private String name private Address addressfk Address private Long oid private String addressdetail private Person personfk 3 表模型 表 7 address 表 表 8 person 表 关系映射 徐伟 11 3 映射文件 Address hbm xml Person hbm xml 4 测试 Person p new Person p setName xuwei Address a new Address a setAddressdetail 自贡市大安区 p setAddressfk a a setPersonfk p s save p 5 测试结果 关系映射 徐伟 12 a p setAddressfk a a setPersonfk p s save p 正常保存 信息如下 Hibernate insert into person name values Hibernate insert into address addressdetail personid values b p setAddressfk a a setPersonfk p s save a 异常抛出 信息如下 not null property references a null or transient value 1 2 2 一对一主键双向关联 1 需要改动的地方就是 Address hbm xml personfk 关系映射 徐伟 13 1 2 3 一对多外键双向关联 1 模型介绍 一个人 Person 对于多个地址 Address 2 实体 Address private Long oid private String addressdetail private Person personfk Person private Long oid private String name private Set addresses new HashSet 3 表模型 表 9 address 表 表 10person 表 4 映射文件 Address hbm xml 关系映射 徐伟 14 Person hbm xml 5 测试方法 s beginTransaction Person p new Person Address a1 new Address Address a2 new Address a1 setAddressdetail 自贡市大安区 a2 setAddressdetail 自贡市大安区 p setName xuwei p getAddresses add a1 p getAddresses add a2 a1 setPersonfk p a2 setPersonfk p 关系映射 徐伟 15 s save p s saveOrUpdate a1 s saveOrUpdate a2 s getTransaction commit 6 测试结果 s save p s saveOrUpdate a1 s saveOrUpdate a2 或者 s save p 或者 s saveOrUpdate a1 s saveOrUpdate a2 均能正常保存 1 2 4 多对多双向关联 1 模型介绍 多个人 Person 对应多个地址 Address 一个人可对应多个地址 一个地址也可以对应多个人 2 实体 Address private Long oid private String addressdetail private Set persons new HashSet Person private Long oid private String name private Set addresses new HashSet 3 表模型 表 11Address 表 关系映射 徐伟 16 表 12Person 表 表 13中间关系表 4 映射文件 Person hbm xml Address hbm xml 关系映射 徐伟 17 5 测试方法 s beginTransaction Person p1 new Person Person p2 new Person Address a1 new Address Address a2 new Address a1 setAddressdetail 自贡市大安区 a2 setAddr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年教师招聘之《小学教师招聘》通关练习试题(综合卷)附答案详解
- 考试题及答案大全集
- 汽车救援员技能巩固考核试卷及答案
- 光学计量员职业考核试卷及答案
- 润滑油脂灌装制桶工内部技能考核试卷及答案
- 集输工成本预算考核试卷及答案
- 静脉输血考试题及答案
- 经理升职考试题及答案
- 课件文案精简
- 今年监理考试题及答案
- 《新能源汽车发展历程》课件
- 《全球时尚品牌概述》课件
- 四川宜宾环球集团有限公司招聘笔试题库2025
- 护罩钣金合同协议
- 2025中国新型储能行业发展白皮书
- 风电项目建设流程
- 2025年乡村医生考试题库:常见疾病诊疗与社区医疗管理试题试卷
- 小学教育学(第5版)课件 曾文婕 第0-4章 绪论、小学教育源流-小学教师
- TCANSI 133-2024 液化天然气(LNG)燃料动力船舶槽车气试加注作业安全要求
- 力学篇01秒解动态平衡-高考物理答题技巧与模型
- 项目管理技能与经验分享
评论
0/150
提交评论