ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:52.29KB ,
资源ID:17637447      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/17637447.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(关联关系映射文档格式.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

关联关系映射文档格式.docx

1、单向关联指具有关联关系的实体对象之间的加载关系是单向的。它意味着,在具有关联关系的两个实体对象中,只有一个实体对象可以访问对方。如图15.1所示,从学生对象中可以加载到班级信息,反过来则不行。(2)双向关联双向关联指具有关联关系的实体对象之间的加载关系是双向的。它意味着,在具有关联关系的两个实体对象中,彼此都可以访问对方。如图15.2所示,从学生对象中可以加载到班级信息,从班级对象中也可加载到学生的信息。 图15.1 单向关联 图15.2 双向关联15.1.2 多对一单向关联映射多对一单向关联映射十分常见,在学习其映射方法之前,首先来了解一下多对一单向关联的实体。如图15.3所示,图书对象(B

2、ook)与图书类别对象(Category)为多对一的关联关系,多本图书对应一个类别,在Book对象中拥有Category的引用,它可以加载到一本图书的所属类别,而在Category的一端却不能加载到图书信息。对于多对一单向关联映射,Hibernate会在多的一端加入外键与一的一端建立关联关系,其映射后的数据表如图15.4所示。图15.3 多对一单向关联的实体对象图15.4 映射后的数据表例15.01 建立图书对象(Book)与图书类别对象(Category)的多对一关联关系,通过单向关联进行映射。其关键的映射代码如下:(实例位置:光盘TMInstances15.01)!DOCTYPE hibe

3、rnate-mapping PUBLIC -/Hibernate/Hibernate Mapping DTD 3.0/ENhibernate-mapping package=com.lyq.modelclass name=Book table=tb_book_manytoone1 id name=idgenerator class=native/id- 图书名称 -property name=name not-null=true length=200 /- 作者 -author50- 多对一关联映射 -many-to-one name=category class=Category- 映射的字

4、段 -column name=categoryId/many-to-one/class/hibernate-mappingHibernate的多对一单向关联是使用标签进行映射,此标签用在多的一端。其中,name属性用于指定持久化类中相对应的属性名,class属性指定与其关联的对象。此外还需要指定数据表中所映射的字段,它使用子标签进行设置,标签的name属性用于一的一端的主键标识。创建ExportTables类,在main()方法中将数据表导出。其关键代码如下:public static void main(String args) /加载配置信息Configuration cfg = new

5、Configuration().configure();/实例化SchemaExport对象SchemaExport export = new SchemaExport(cfg);/导出数据表export.create(true, true);运行此类,将在数据库中创建图书信息表与图书类别表。例15.02 多对一单向关联映射中对象的加载,代码如下。光盘TMInstances15.02)public class Test Session session = null; /声明Session对象 try /获取Session session = HibernateUtil.getSession()

6、; /开启事务 session.beginTransaction(); /查询图书对象 Book book = (Book)session.get(Book.class, new Integer(1); System.out.println(图书名称: + book.getName();图书类别: + book.getCategory().getName(); /提交事务 session.getTransaction().commit(); catch (Exception e) e.printStackTrace(); /出错将回滚事务 session.getTransaction().ro

7、llback(); finally /关闭Session对象 HibernateUtil.closeSession(session); 本实例中,Book对象持有Category对象的引用,从Book对象中可以得到Category对象的属性,实例运行结果如图15.5所示。图15.5 实例运行结果15.1.3 多对一双向关联映射双向关联的实体对象都持有对方的引用,在任何一端都能加载到对方的信息。多对一双向关联映射实质是在多对一单向关联的基础上,加入了一对多关联关系。下面仍以图书对象(Book)与图书类别对象(Category)为例,讲解多对一双向关联映射,其实体关系如图15.6所示。图15.6

8、多对一双向关联的实体对象对于图书类别对象Category,它拥有多个图书对象的引用,因此需要在Category对象中加入Set属性的图书集合books,对于其映射文件也通过集合的方式进行映射。例15.03 建立图书对象(Book)与图书类别对象(Category)的多对一关联关系,通过双向关联进行映射,其中Book 对象的映射文件与多对一单向关联中一致,并没有发生任何变化,而Category对象的映射文件通过标签进行映射。代码如下:光盘TMInstances15.03)tb_Category_manytoone2- 类别名称 - 一对多映射 -set name=bookskey column=

9、one-to-many class=/set标签用于映射集合类型的属性,其中name属性用于指定持久化类中的属性名称。此标签通过子标签指定数据表中的关联字段,对于一对多关联映射通过标签进行映射,其class属性用于指定相关联的对象。例15.04 多对一双向关联映射中对象的加载,代码如下:光盘TMInstances15.04)*查询图书对象*); Book book1 = (Book)session.get(Book.class, new Integer(1); + book1.getName(); + book1.getCategory().getName();*查询类别对象* /查询类别对象

10、 Category c = (Category) session.load(Category.class, new Integer(1);类别名称: + c.getName(); Set books = c.getBooks(); /获取类别中的所有图书 /通过迭代输出图书名称 for (Iteratorcom.lyq.model.Usertb_user_onetoone_p- 主键id - 姓名 -username- 年龄 -age- 一对一映射 -one-to-one name=idCardIdCard对象的主键参照了User对象的外键,其映射文件IdCard.hbm.xml的关键代码如下

11、。com.lyq.model.IdCardtb_idCard_onetoone_p- 参考User的外键 -foreignparam name=propertyuser/generator- 证件号 -numuser constrained=one-to-one标签用于建立一对一关联映射,其中name属性用于指定持久化类中的属性名称;constrained属性用于建立一个约束,它表明IdCard对象的主键参照了User的外键。IdCard的主键生成策略为foreign,此种方式通过标签配置主键的来源。运行此类,将在数据库中创建用户表与证件表。15.1.5 一对一外键关联映射除一对一主键关联映射

12、外,还有一对一外键关联映射。这种映射方式在其中一端加入一个外键指向另一端,其映射后形成的数据表如图15.10所示。图15.10 表关系从图15.10中可以看出,这种映射方式与多对一映射方式相似,如果能限制User对象中IdCard的唯一性,那么二者之间实质上就构成了一对一关联关系。例15.06 用户(User)对象与证件(IdCard)对象为一对一的关联关系,在二者之间建立一对一外键关联映射。其中IdCard的映射文件IdCard.hbm.xml的关键代码如下:光盘TM Instances15.06)tb_idCard_onetoone_fUser对象的映射文件User.hbm.xml的关键代码如下:tb_user_onetoone_f unique=在IdCard对象的映射文件中,并没有发生太大的变化,它只不过进行了普

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1