- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
关联关系映射
Hibernate高级应用 ( 视频讲解:107分钟)
目前,持久层框架并非只有Hibernate,但在众多持久层框架中,Hibernate凭借着其强大的功能、轻量级的实现、成熟的结构体系等诸多优点从中脱颖而出,在Java编程中得到了广泛的应用。本章将在第14章的基础上,对其进行更加深入的讲解。
通过阅读本章,您可以:
:? 掌握实体对象关系的建立
:? 掌握关联关系的映射方法
:? 理解单向关联与双向关联
:? 掌握对象间的级联操作
:? 掌握继承映射
:? 掌握HQL查询语言
15.1? 关联关系映射
?视频讲解:光盘\TM\Video\15\关联关系映射.exe
Hibernate框架是一个ORM框架,它以面向对象的编程方式操作数据库。在Hibernate中,“映射”发挥着巨大的作用,它将实体对象映射成数据表,实体对象的属性被映射为表中的字段,同样其实体之间的关联关系也是通过“映射”实现的。
15.1.1? 单向关联与双向关联
在Hibernate框架中,实体对象之间的关系可分为一对一、多对一等关联关系,其关联类型主要分为“单向关联”与“双向关联”。
(1)单向关联
单向关联指具有关联关系的实体对象之间的加载关系是单向的。它意味着,在具有关联关系的两个实体对象中,只有一个实体对象可以访问对方。如图15.1所示,从学生对象中可以加载到班级信息,反过来则不行。
(2)双向关联
双向关联指具有关联关系的实体对象之间的加载关系是双向的。它意味着,在具有关联关系的两个实体对象中,彼此都可以访问对方。如图15.2所示,从学生对象中可以加载到班级信息,从班级对象中也可加载到学生的信息。
?????
??图15.1? 单向关联??
???
???? ?????????????????????????图15.2? 双向关联
15.1.2? 多对一单向关联映射
多对一单向关联映射十分常见,在学习其映射方法之前,首先来了解一下多对一单向关联的实体。如图15.3所示,图书对象(Book)与图书类别对象(Category)为多对一的关联关系,多本图书对应一个类别,在Book对象中拥有Category的引用,它可以加载到一本图书的所属类别,而在Category的一端却不能加载到图书信息。
对于多对一单向关联映射,Hibernate会在多的一端加入外键与一的一端建立关联关系,其映射后的数据表如图15.4所示。
?????
??图15.3? 多对一单向关联的实体对象
??
????? ????????????????????图15.4? 映射后的数据表
例15.01? 建立图书对象(Book)与图书类别对象(Category)的多对一关联关系,通过单向关联进行映射。其关键的映射代码如下:(实例位置:光盘\TM\Instances\15.01)
?xml version=1.0?
!DOCTYPE hibernate-mapping PUBLIC
-//Hibernate/Hibernate Mapping DTD 3.0//EN
/hibernate-mapping-3.0.dtd
hibernate-mapping package=com.lyq.model
class name=Book table=tb_book_manytoone1
?????????? !-- 主键 --
?????????? id name=id
??????????????????? generator class=native/
?????????? /id
?????????? !-- 图书名称 --
?????????? property name=name not-null=true length=200 /
?????????? !-- 作者 --
?????????? property name=author not-null=true length=50/
?????????? !-- 多对一关联映射 --
?????????? many-to-one name=category class=Category
??????????????????? !-- 映射的字段 --
??????????????????? column name=categoryId/
?????????? /many-to-one
/class
/hibernate-mapping
Hibernate的多对一单向关联是使用many-to-one标签进行映射,此标签用在多的一端。其中,name属性用于指定持久化类中相对应的属性名,class属性指定与其关联的对象。此外还需要指定数据表中所映射的字段,它使用子标签column进行设置,column标签的name属性用于一的
文档评论(0)