Java 开发 2.0: 使用 Amazon SimpleDB 实现云存储,第 2 部分:使用 SimpleJPA 实现简单对象持久化
2010-09-16 00:00:00 来源:WEB开发网Hibernate 和 JPA:背景概况
现在有许许多多的 Java 开发人员都使用 Hibernate(和 Spring)实现数据持久化。除了是最先成功的开放源码项目,Hibernate 也彻底改变了 ORM 领域。在出现 Hibernate 之前,Java 开发人员必须处理复杂的 EJB 实体 Bean;而在这之前,我们只能自己实现 ORM 或者使用来自诸如 IBM® 等供应商的产品。Hibernate 去掉了 EJB 的所有复杂性和开销,转而使用我们现在许多人都使用的基于 POJO 的建模平台。
Java Persistence API (JPA) 是由于 Hibernate 创新地使用 POJO 进行数据建模方法的流行而出现的。现在,EJB 3.0 实现了 JPA,Google App Engine 也一样实现了 JPA。甚至如果您使用 Hibernate EntityManager,那么 Hibernate 本身也是一个 JPA 实现,
既然 Java 开发人员已经越来越熟悉使用 POJO 对以数据为中心的应用进行建模,那么可以说,SimpleDB 这样一个数据存储应该能够给我们提供一个类似的选项。毕竟,它与数据库有些相似,不是吗?
用对象进行数据建模
要使用 SimpleJPA,我们需要修改一下我们的 Racer 和 Runner 对象,使它们符合 JPA 规范。幸好,JPA 基本要素是很简单的:给平常的 POJO 加上注释,而 EntityManager 实现会负责完成其他处理 — 不需要 XML。
JPA 所使用的两个主要的注释是 @Entity 和 @Id,这两个注释分别将一个 POJO 指定为持久化类,同时确定它的标识键。为了将我们的赛跑应用转换为 JPA,我们也将使用另外两个管理关系的注释:@OneToMany 和 @ManyToOne。
在本文的第 1 部分中,我已经向您介绍了如何持久化选手和比赛对象了。然而,我没有使用对象来表示这些实体 — 我只是使用了 Amazon 的原始 API 来存储这两个对象的属性。如果我希望对一个比赛和比赛选手的关系进行建模,那么我可以编写如清单 1 所示的代码:
更多精彩
赞助商链接