技术开发 频道

采用Java持久化框架:选择、时机和优缺点

    Java Persistence API

    从 EJB 技术可以开始应用时起,对其在实际应用中的可用性就一直存在怀疑。在我看来,产生这种现象最重要的两个原因是复杂性和资源密集性。结果,随后出现了比 EJB 更简单、具有更小资源空间的框架(比如 Spring 和 Hibernate),并且更快流行开来。为了说明这一点,我们注意到 EJB 3.0 规范的方向相对以前出现了一个主要的转变。作为 JSR 220 的一部分,该规范提供了类似 Plain Old Java Object (POJO) 支持、Dependency Injection(依赖注入)和注释等功能。现在引入了一组全新的 API:Java Persistence API (JPA),以允许开发者管理 Java EE(甚至 SE)应用程序中的关系数据。另外,Sun 声称 Java Persistence API 表现了一些 Hibernate、TopLink(二者都会在稍后讨论)、JDO 以及 EJB 框架中最好的想法。

    当前,GlassFish 项目提供了实施 JPA 的一个参考,JPA 在 GlassFish 应用程序服务器中作为 TopLink Essential 部分。您可以在 GlassFish 社区页 找到该 JPA 参考实施。不要混淆 TopLink Essentials 和 TopLink,前者现在是由 Oracle Corporation 拥有的关系映射工具。稍后我将在本文中讨论 TopLink 框架。

    让我们来讨论一些您应该考虑应用 JPA 作为持久化框架的应用场景。

    何时考虑将JPA作为持久化框架

    您选择从流行的框架(比如 Hibernate、TopLink 和 EJB)中选择应用具有“好用”的功能且基于标准的框架。

    您需要轻量级的持久化框架,且不需要 EJB 的容器提供的服务。

    您需要可以在标准或 Enterprise Java 应用程序中使用的持久化框架。

    何时考虑JPA的备选方案

    您使用的 Java 的版本决定了实际是否可以应用 JPA。JPA 是 EJB 3.0 规范的一部分,而该规范是 Java EE 5 版本的一部分。如果您未更新到 Java EE 5,则无法使用 JPA。

    您的应用程序需要 JPA 无法提供的服务,比如那些由 EJB 容器提供的服务,在那些情况下您更依赖 EJB。

    在结束对此框架的讨论前,让我们列出一些使用 JPA 作为持久化框架的优势和缺点。

    JPA有什么优势?

    JPA 是基于标准的。越来越多的提供商期待在不久的将来提供 JPA 实施。

    它提供了 Hibernate 和 TopLink 中最好的功能。

    它可以和 Java SE 和 Java EE 应用程序一起使用,需要使用 EJB 容器,也可以不要。

    JPA有什么缺点?

    由于非常新,JPA 规范可能还需要进过重要发展才会变得很稳定。

    JPA 是一个规范而不是一个产品。您需要提供商提供一个实施,才能获得这些基于标准的 API 的优势。

0
相关文章