08 Hibernate 多对多单向关联.doc_第1页
08 Hibernate 多对多单向关联.doc_第2页
08 Hibernate 多对多单向关联.doc_第3页
08 Hibernate 多对多单向关联.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Hibernate多对多单向关联一、模型介绍多个人(Person)对应多个地址(Address)。一个人可对应多个地址,一个地址也可以对应多个人。二、实体(省略getter、setter方法)public class Personnn private int personid;private String name;private int age;private Set addresses=new HashSet();public class Addressnn private int addressid;private String addressdetail;三、表模型mysql desc person_nn;+-+-+-+-+-+-+| Field| Type| Null | Key | Default | Extra|+-+-+-+-+-+-+| personid | int(11)| NO| PRI | NULL| auto_increment | name| varchar(255) | YES| NULL| age| int(11)| YES| NULL|+-+-+-+-+-+-+mysql desc join_nn;+-+-+-+-+-+-+| Field| Type| Null | Key | Default | Extra |+-+-+-+-+-+-+| personid| int(11) | NO| PRI | addressid | int(11) | NO| PRI |+-+-+-+-+-+-+mysql desc person_nn;+-+-+-+-+-+-+| Field| Type| Null | Key | Default | Extra|+-+-+-+-+-+-+| personid | int(11)| NO| PRI | NULL| auto_increment | name| varchar(255) | YES| NULL| age| int(11)| YES| NULL|+-+-+-+-+-+-+四、生成的SQL脚本/* Formatted on 2007/08/21 11:13 (QP5 v5.50) */CREATE TABLE address_nn (addressid int(11) NOT NULL auto_increment,addressdetail varchar(255) default NULL,PRIMARY KEY(addressid) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=gbk;/* Formatted on 2007/08/21 11:14 (QP5 v5.50) */CREATE TABLE join_nn (personid int(11) NOT NULL,addressid int(11) NOT NULL,PRIMARY KEY(personid,addressid),KEY FKAAB98CF5E008E752 (personid),KEY FKAAB98CF5239F6A16 (addressid),CONSTRAINT FKAAB98CF5239F6A16 FOREIGN KEY (addressid) REFERENCES address_nn (addressid),CONSTRAINT FKAAB98CF5E008E752 FOREIGN KEY (personid) REFERENCES person_nn (personid) ENGINE=InnoDB DEFAULT CHARSET=gbk;/* Formatted on 2007/08/21 11:14 (QP5 v5.50) */CREATE TABLE person_nn (personid int(11) NOT NULL auto_increment,name varchar(255) default NULL,age int(11) default NULL,PRIMARY KEY(personid) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=gbk;五、映射方法六、测试方法public class Test_nn public static void main(String args)Addressnn add1=new Addressnn();Addressnn add2=new Addressnn();Addressnn add3=new Addressnn();Personnn p1=new Personnn();Personnn p2=new Personnn();add1.setAddressdetail(郑州市经三路);add2.setAddressdetail(合肥市宿州路);add3.setAddressdetail(北京市长安路);p1.setName(wang);p1.setAge(30);p2.setName(lee);p2.setAge(50);p1.getAddresses().add(add1);p1.getAddresses().add(add2);p2.getAddresses().add(add2);p2.getAddresses().add(add3);Session session= HibernateUtil.getCurrentSession();Transaction tx=session.beginTransaction();session.save(add1);session.save(add2);session.save(add3);session.save(p1);session.save(p2);mit();HibernateUtil.closeSession();七、测试结果1) :正常保存.session.save(add1);session.save(add2);session.save(add3);session.save(p1);session.save(p2);Hibernate: insert into ADDRESS_nn (addressdetail) values (?)Hibernate: insert into ADDRESS_nn (addressdetail) values (?)Hibernate: insert into ADDRESS_nn (addressdetail) values (?)Hibernate: insert into PERSON_nn (name, age) values (?, ?)Hibernate: insert into PERSON_nn (name, age) values (?, ?)Hibernate: insert into join_nn (personid, addressid) values (?, ?)Hibernate: insert into join_nn (personid

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论