Hibernate实体层设计_第1页
Hibernate实体层设计_第2页
Hibernate实体层设计_第3页
全文预览已结束

下载本文档

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

文档简介

1、第二章Hibernate实体层设计l 本章目标n 实体类的概念。n 实体映射关系。n 使用Hibernate开发实体层。l 什么是实体类?RUP(Rational Unified Process,统一软件开发过程,统一软件过程)是一个面向对象且基于网络的程序开发方法论。根据Rational(Rational Rose和统一建模语言的开发者)的说法,将系统中的类分为边界类、控制类、实体类。n 边界类是处理界面和交互操作的。n 控制类主要是从事流程跳转功能的。n 实体类的主要职责是存储和管理系统内部的信息,它也可以有行为,甚至很复杂的行为,但这些行为必须与它所代表的实体对象密切相关;也就是说实体类

2、主要是作为数据管理层面上存在的类。l 实体映射关系我们软件开发系统中最常见的实体映射关系有:n 单对单,比如公民和身份证的关系;n 单对多,比如单个客户和订单之间的关系;n 多对多,比如学生和课程、教员和学生之间的关系;l 使用Hibernate开发实体层n 复合主键的使用基于业务需求,有时会需要使用两个字段来作复合主键。Hibernate中实现复合主键有两种方法1. 基于实体属性2. 基于主键类这里我重点介绍基于主键类的实现方式。如果要实现复合主键,首先类应该先满足以下要求:1、本类必须实现Serializable 接口2、复写equals 和hashCode 方法· equals

3、:对象比较方法· hashCode:取得Hash 编码对于equals 和 hashCode 方法的复写,可以使用第三方工具:commons-lang-.jar注:复合主键查询方式在实际应用中尽量避免使用复合主键n 一对一关系u 数据库中的1对1表现形式l 主键关联l 通过两个表格中使用相同的主键,同时做为另一个表的外键。u 实体类中的1对1的表现形式l 如果现实中有两个对象分属不同的类别,他们之间存一对一的关联关系,则可以通过两者之间属性互相包含对方。l 在hibernate中在映射文件采用<one-to-one>来描述。n 一对多关系u 表中一对多,在表中使用的是外键

4、关联,通过一张表的一个键做为另一个表的外来键立一对多关系。u 类中表示为一个类中有个集合属性包含对方类的很多对象,而在另一个类中,只包含前述类的一个对象,从而实现一对多关系的键立。u Hibernate中采用Set类型做为集合,而使用<one to many>和<many to one>来实现。u 注:有主控权设置,通过设置inverse属性来设置,设置为true的一端让出主控权;u 你只需要记住这个直观的规则:所有的双向关联需要有一端被设置为inverse=false。在一对多关联中它必须是代表多(many)的那端。而在多对多(many-to-many)关联中,你可以任意选取一端,因为两端之间并没有差别u 注意一点:cascade与inverse区别。同为控制属性但其意义不同。n 多对多u 数据库中的实现方式,一般采用对存在多对多关系的两个对象表,建立多对多关联表,就是用一个独立的表来存放两个表的主键字段,通过遍历这张关系表来获取两表的关联关系。u 在对象中多对多通过,

温馨提示

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

评论

0/150

提交评论