Hibernate关系映射

上传人:汽*** 文档编号:431634743 上传时间:2023-01-05 格式:DOC 页数:26 大小:106.50KB
返回 下载 相关 举报
Hibernate关系映射_第1页
第1页 / 共26页
Hibernate关系映射_第2页
第2页 / 共26页
Hibernate关系映射_第3页
第3页 / 共26页
Hibernate关系映射_第4页
第4页 / 共26页
Hibernate关系映射_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《Hibernate关系映射》由会员分享,可在线阅读,更多相关《Hibernate关系映射(26页珍藏版)》请在金锄头文库上搜索。

1、word目 录1关系映射11.1 单向关联11.1.1 一对一外键单向关联11.1.2 一对一主键单向关联41.1.3 一对多外键单向关联51.1.4 多对一外键单向关联81.2 双向关联101.2.1 一对一外键双向关联101.2.2 一对一主键双向关联121.2.3 一对多外键双向关联131.2.4 多对多双向关联15 / 1 关系映射1.1 单向关联1.1.1 一对一外键单向关联1、模型介绍一个人Person对应一个地址Address。2、实体无getter和setterPeronprivate Long oid;private String personid;private Strin

2、g name;private Address addressfk;Addressprivate Long oid;private String addressid;private String addressdetail;3、表模型以下是地址表表1 地址表以下是人物表,其中addressid是外键引用地址表的addressid表2 人物表4、映射文件5、测试方法public class Test public static void main(String args) Session s = HibernateUtil.getSession();try s.beginTransaction()

3、;Person p = new Person();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().mit(); catch (HibernateException e) e.printStackTrace();s.getTransaction().rollback(); finally s.c

4、lose();6、测试结果a、s.save(a);s.save(p);正常保存b、s.save(p);s.save(a);异常发生,异常信息:not-null property references a null or transient valuec、s.save(a)能够插入,但信息不全,只插入一条记录。d、s.save(p)异常发生,异常信息:not-null property references a null or transient value 1.1.2 一对一主键单向关联1、要改的地方只有一个就是addressfk2、测试结果a、s.save(a);s.save(p);正常保存

5、,推荐方式,先插入父表,再插入子表b、s.save(p);s.save(a);正常保存,也是先插入父表,再插入子表c、s.save(a)能够插入,但信息不全,只插入一条记录。d、s.save(p)正常保存,而且插入两条记录。1.1.3 一对多外键单向关联1、模型介绍一个人Person对应多个地址Address,比如家庭地址、公司地址。2、实体Addressprivate Long aid;private String addressid;private String addressdetail;Personprivate Long pid;private String personid;pri

6、vate String name;private Set addresses = new HashSet();3、表模型以下是地址表此表是多的一方pid为外键表3 地址表以下是人物表表4 人物表4、映射文件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 Addr

7、ess();a1.setAddressid(杨家1号);a1.setAddressdetail(某某市大安区);a2.setAddressid(杨家2号);a2.setAddressdetail(某某市大安区);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().mit(); catch (HibernateException e) e.printStackTrace();s.g

8、etTransaction().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: u

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号