1.4 对象关系映射(ORM)

在前面的几节中,读者已经了解了JPA是对象关系映射ORM的框架。那么什么是ORM呢?ORM与传统的Java持久化技术相比,有何优势呢?

1.4.1 什么是对象关系映射

对象关系映射(Object Relational Mapping,ORM)是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。这里的“O”表示的是对象,“R”表示的是关系型数据库,“M”表示的是对象和关系型数据库之间的联系。

下面举一个具体的实例来说明,有一个客户类Customer,有属性id,姓名name和年龄age。有一个表tb_customer,有三个列,分别为id、name和age。那么如何将这两者自动关联起来呢,这就需要对象关系映射,也就是JPA所要解决的问题。这样当进行ORM后,表中的一条记录可以映射为类的实例(对象),如图1-8所示。

图1-8 ORM示例

在“ORM”中,最重要的就是“R”,一旦将对象和关系型数据库关联起来,那么操作对象就自动地操作了数据库,而避免写大量的SQL语句。

1.4.2 对象关系映射模式

上面的例子中,只涉及一个表和类,是最简单的一对一映射。在ORM中,还有更为复杂的映射类型,比如一对多、多对多映射等。无论是哪种类型的映射,都遵循以下几个基本原则。

● 类通常映射为表。

● 类中的属性通常映射为表中的一列。

● 如果类的属性如集合类,则会涉及多个表的关联映射。

有关各种映射模式的应用,将在本书的以下章节中详细讲述,这里只简单介绍一下。