Hibernate annotation 学习笔记(8)

2018-11-28 15:49

Hibernate—annotation 学习笔记 第36页 共109页

第16课 关系映射(重点)

注意:这里的关系是指:对象之间的关系,并不是指数据库的关系,-----红色重要 存在以下关系: 1、 一对一

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

一、 一对一 关联映射 ? ?

两个对象之间是一对一的关系,如Person-IdCard(人—身份证号) 有两种策略可以实现一对一的关联映射 ? ?

主键关联:即让两个对象具有相同的主键值,以表明它们之间的一一对应的关系;数据库表不会有额外的字段来维护它们之间的关系,仅通过表的主键来关联。

唯一外键关联:外键关联,本来是用于多对一的配置,但是如果加上唯一的限制之后,也可以用来表示一对一关联关系。 对象模型

单向(主键、外键) 双向(主键、外键) 单向 双向 单向 双向 单向 双向 List Set Map 单表 多表

一张主表、多张子表 @Embeddable @Embedded

2、 一对多

3、 多对一

4、 多对多

5、 集合映射

6、 继承关系(不重要)

7、 组件映射

Persionidintnamevarchar(20)实体类:

/** 人-实体类 */ public class Person { private int id; private String name; public int getId() {return id; } IdCardidintcardNovarchar(18)

public void setId(int id) { this.id = id;} Hibernate—annotation 学习笔记 第37页 共109页

}

/**身份证-实体类*/ public class IdCard { } (一) 唯一外键关联-单向(unilateralism) 1、 说明:

人—-> 身份证号(Person?IdCard),从IdCard看不到Person对象 2、 对象模型

需要在Person类中持有IdCard的一个引用idCard,则IdCard中没有Person的引用

private int id; private String cardNo; public int getId() {return id;} public void setId(int id) {this.id = id;} public String getCardNo() { return cardNo;} public void setCardNo(String cardNo) {this.cardNo = cardNo;} public String getName() {return name;} public void setName(String name) {this.name = name;}

3、 关系模型

关系模型目的:是实体类映射到关系模型(数据库中),是要求persion中添加一个外键指向idcard

4、 实体类:

注:IdCard是被引用对象,没有变化。 } /** 人-实体类 */ public class Person { private int id; private String name; private IdCard idCard;//引用IdCard对象 public int getId() {return id; } public void setId(int id) { this.id = id;} public String getName() {return name;} public void setName(String name) {this.name = name;} public IdCard getIdCard() { return idCard;} public void setIdCard(IdCard idCard) {this.idCard = idCard;} Hibernate—annotation 学习笔记 第38页 共109页

5、 xml映射

IdCard实体类的映射文件:

因为IdCard是被引用的,所以没有什么特殊的映射 Person实体类的映射文件

在映射时需要添加一个外键的映射,就是指定IdCard的引用的映射。这样映射到数据库时,就会自动添加一个字段并作用 外键指向被引用的表

一对一 唯一外键 关联映射 双向 需要在另一端(当前IdCard),添加标签,指示hibernate如何加载其关联对象(或引用对象),默认根据主键加载(加载person),外键关联映射中,因为两个实体采用的是person的外键来维护的关系,所以不能指定主键加载person,而要根据person的外键加载,所以采用如下映射方式:


Hibernate annotation 学习笔记(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:儿童文明礼仪小故事(共4篇)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: