使用 Apache OpenJPA 开发 EJB 3.0 应用,第 4 部分: 实体关联
2010-04-19 00:00:00 来源:WEB开发网核心提示:对象和对象之间除了继承关系之外,还存在着关联关系:包括一对一、一对多、多对一和多对多关系,使用 Apache OpenJPA 开发 EJB 3.0 应用,第 4 部分: 实体关联,在 OpenJPA 框架下,开发者只需要使用 javax.persistence.OneToOne 这样的注释,我们需要记录书的基本信息如编
对象和对象之间除了继承关系之外,还存在着关联关系:包括一对一、一对多、多对一和多对多关系,在 OpenJPA 框架下,开发者只需要使用 javax.persistence.OneToOne 这样的注释,并提供相应的配置内容,就可以轻松的实现实体之间的关联关系,并且能够实现实体的级联创建、更新和删除。
本文中我们将以实体之间的一对一关联关系为例,深入地讲述如何使用 OpenJPA 框架提供的注释,实现企业应用中实体之间的关联关系。文中将提供一个简单的例子,详细的说明如何定义类和类之间的一对一关联关系的步骤,同时会重点讲述这些注释所支持的属性。一对多、多对一和多对多这三种关联关系在 OpenJPA 中的实现过程和一对一关联关系的实现过程是一致的,只是需要选择使用不同的注释,在本文的最后,会对实现这三种关联关系进行简单说明,读者可以参考一对一关系的实现过程来实现一对多、多对一和多对多的关联关系。
一对一关系
在面向对象的世界里,类 A 和类 B 之间形成一对一关系必须满足如下条件:
对象 A1 引用了对象 B1;
类 A 的其它对象 An 不能引用同样的对象 B1。
在关系数据库中,我们通常使用唯一外键的方式来实现一对一关系,下面这个图说明了这种的情况。
图 1. 关系数据库中的一对一关系
下面开始介绍 OpenJPA 中实现实体之间一对一关联关系的相关知识,为了说明的需要,我们首先定义一个简单的应用场景。
模拟场景
假定开发者要完成一个图书馆管理系统,我们需要记录书的基本信息如编号、书名、出版日期等基本信息,还需要记录书的前言,序等信息。
赞助商链接