快速业务通道

将遗留Hibernate应用程序迁移到OpenJPA和EJB 3.0(一) - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15

将遗留Hibernate应用程序迁移到OpenJPA和EJB 3.0(一)

时间:2011-09-18 Donald Vines

简介:通过使用 EJB 2.1 以及 OpenJPA 和 EJB 3.0 中的等效功能比较 Hibernate 应用程序中的特 性和功能,学习如何将 Hibernate 应用程序源代码、对象关系映射和配置参数迁移到 OpenJPA。

引言

Hibernate 是开放源代码持久性和查询框架,提供传统 Java™ 对象 (POJO) 到关 系数据库表的与对象相关的映射,以及数据查询和检索功能。Apache OpenJPA 项目将按照 EJB 3.0 Java Persistence API 规范的定义为 POJO 实体提供类似的开放源代码持久性和查询框架。本文介绍 Enterprise JavaBeans™ (EJB) 2.1 中的通用 Hibernate 场景,并将它们与 OpenJPA 和 EJB 3.0 中实现的等效场景进行比较。具体来说,您可以并排查看 Hibernate 应用程序源代码、对象关系映射和 配置参数,并将它们与等效的 OpenJPA 源代码、映射和配置进行比较。这里显示的比较不仅使您能够了 解如何进行这些更改,而且说明了将使用这些通用场景的遗留 Hibernate 应用程序迁移到 OpenJPA 相当 简单。

尽管本文重点介绍将遗留 Hibernate 应用程序迁移到 OpenJPA,但是如果您熟悉 Hibernate,还会发现其中的价值,并希望尽快使用新的 JPA 规范以及使用 OpenJPA 持久性提供程序进 行新的应用程序开发。

本文假设您熟悉 Hibernate 的基本概念,并将专门介绍 Hibernate 3.0 实现。本文中的所有示例均在 EJB 2.1 中的 Hibernate 3 中运行过,并在使用 IBM® WebSphere® Application Server V6.1 Feature Pack for EJB 3.0 的 OpenJPA 0.9.7 中运行过。

将遗留 Hibernate 应用程序迁移到 OpenJPA 的原因是多方面的。例如,Hibernate 是一个非标 准的、对象关系映射和持久性管理解决方案。Hibernate 3 需要 JDK 1.3.1 或更高版本。通过对比, OpenJPA 可实现 JPA 规范,该规范是 Java 5 规范的核心部分,并且 WebSphere Application Server V6.1 Feature Pack for EJB 3.0 的实现基于该规范。有关这些产品的详细信息,请参见参考资料。

考虑到本文的目的,JPA 表示该规范,并且 OpenJPA 表示 JPA 规范的实现。

本文没有介 绍 Hibernate 的所有特性和功能,但介绍了该领域中经常使用的最佳实践。

迁移 Hibernate 应 用程序源代码

Java Persistence API (JPA) 是作为 EJB 3.0 规范 (JSR220) 的一部分引入的, 目的是让整个 Java 社区支持标准、单一的持久 API。JPA 将采用 Hibernate、TopLink、Java Data Objects 和 Container Managed Persistence (EJB-CMP) 2.1 规范的最佳理念。

JPA 适用于 Java Platform Standard Edition (Java SE) 和 Enterprise Edition (Java EE) 环境,因为它将实体 表示为 JPA 持久性提供程序(如 OpenJPA)可以管理的 POJO。关于实体的对象关系映射的元数据是使用 Java 5 注释或在 XML 描述符中指定的。实体用于将 Java 对象持久保存到数据库。

有许多 JPA 持久性提供程序。IBM 的 JPA 规范实现基于 Apache OpenJPA 项目。随着这些 JPA 持久性提供程序的发 布,客户现在可以对标准 API 进行编码,不必在不兼容的非标准持久性提供程序之间进行决策。

为帮助您将遗留 Hibernate 应用程序迁移到 OpenJPA,本部分将通常使用的 Hibernate 非标准 API 与 等效的 OpenJPA 标准 API 进行了比较。本部分先比较所使用的类和接口,然后通过常规用法场景比较 API。

以下各部分提供了详细信息:

类和接口

运行时配置

会话管理

事务管理

实体管理

分离的实体

将遗留Hibernate应用程序迁移到OpenJPA和EJB 3.0(一)(2)

时间:2011-09-18 Donald Vines

1. 类和接口

下表将通常使用的 Hibernate 类和 OpenJPA 中的等效类进行了比较。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号