- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章 深入使用Hibernate1
经典Java EE企业应用 郑州大学软件学院 杨枫(yangfeng1126@) 本次课的主要内容 Hibernate的关联映射 1. Hibernate的关联映射 关联关系 关联关系就是实例之间的互相访问 对象模型中的关联关系和关系模型中的关联关系是怎么体现的? 对象模型中:一个对象把另外一个对象作为它的属性,那么在该对象中可以访问到另外一个对象,此时我们称这两个对象之间有关联关系。 关系模型中:一张表中的某个字段作为外键关联到另外一张表的主键,此时我们称这两张表之间有关联关系。 单向:从一方可以访问到另外一方,而另外一方访问不到该方。 双向:双方可以互相访问到。 Hibernate的关联映射 关联关系 1、单向1-1:需要在持久化类中为关联实体的引用属性增加setter和getter方法 2、单向1-N:持久化类中需要使用集合属性 3、单向N-1:在N的一端的持久化类中增加一个引用1的一端的关联实体属性 4、单向N-N:控制关系的一端需要增加一个Set类型的属性,被关联的持久化实例以集合的形式存在 5、双向1-1:两端持久化类都需要增加引用关联实体的属性,并为该属性提供setter和getter方法 6、双向1-N:两端都需要增加对关联属性的访问,N的一端增加引用到关联实体的属性,1的一端增加集合属性,集合元素为关联实体 7、双向N-N:两端都需要使用Set集合属性,两端都需要增加对集合属性的访问。 Hibernate的关联映射 关联关系 单向N-1 从N的一端可以访问1的一端 程序需要在N的一端的持久化类中增加一个属性,该属性引用1的一端的关联实体。 多对一关联映射原理:在多的一端加入一个外键,指向一的一端 many-to-one name=group column=groupid/ Hibernate的关联映射 关联关系 单向N-1 从N的一端可以访问1的一端 程序需要在N的一端的持久化类中增加一个属性,该属性引用1的一端的关联实体。 无连接表的N-1关联 使用many-to-one.../元素映射N-1的关联关系,将会在N的一端的数据表中郑家一个外键列,用于参考主表记录。 实例:N-1nojointable 有连接表的N-1关联 显式使用join.../元素,强制使用连接表,将一个类的属性映射到多个表中,在join.../元素中需要指定一个table属性用以指定连接表的表名,还需要使用key.../子元素映射外键,并用many-to-one.../子元素映射N-1的关联实体。 实例:N-1withjointable Hibernate的关联映射 关联关系 单向1-1 需要在持久化类里为关联实体的引用属性增加setter和getter方法。 需要在原有的many-to-one.../元素增加unique=“true”属性,用以表示N的一端必须唯一。 身份证 策略1:主键关联,即让两个对象具有相同的主键值,以表明它们之间的一一对应的关系;数据库表不会有额外的字段来维护它们之间的关系,仅通过表的主键来关联。 Hibernate的关联映射 关联关系 单向1-1 需要在持久化类里为关联实体的引用属性增加setter和getter方法。 需要在原有的many-to-one.../元素增加unique=“true”属性,用以表示N的一端必须唯一。 策略2:唯一外键关联:外键关联,本来是用于多对一的配置,但是加上唯一的限制之后(采用many-to-one标签来映射,指定多的一端unique为true,这样就限制了多的一端的多重性为一),也可以用来表示一对一关联关系,其实它就是多对一的特殊情况。 身份证 Hibernate的关联映射 关联关系 单向1-1 需要在持久化类里为关联实体的引用属性增加setter和getter方法。 需要在原有的many-to-one.../元素增加unique=“true”属性,用以表示N的一端必须唯一。 基于外键的单向1-1 在原有的many-to-one.../元素增加unique=“true”属性 实例:1-1FK 有连接表的单项1-1 在原有的many-to-one.../元素增加unique=“true”属性 实例:1-1withjointable 基于主键的单向1-1 不能拥有自己的主键生成器策略,主键由关联实体来负责生成。 用one-to-one.../元素来映射关联实体 实例:1-1PK Hibernate的关联映射 关联关系 单向1-N关联 在1的一端增加Set或bag类型的属性,该属性记录当前实体的关联实体,而且要为Set属性增加setter和getter方法。 一对多关联映射和多对一关联映射原理是一致的,都是在多的一端加入一个外键,指向一的一端。如下图(学生和班级):
文档评论(0)