快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
backTransaction();    throw ex;    } finally {    ORMHelper.closeSession();   }  }  public Customer updateCustomer( Customer customerEntity ) {   ORMHelper.openSession();   try {    ORMHelper.beginTransaction();    Customer returnValue;    returnValue = ORMHelper.update(customerEntity);    ORMHelper.commitTransaction();    return returnValue;   } catch (RuntimeException ex) {    ORMHelper.rollbackTransaction ();    throw ex;   } finally {    ORMHelper.closeSession();   }  }  public Customer getCustomer( Long customerId ) {   ORMHelper.openSession ();   try {    ORMHelper.beginTransaction();    Customer customerEntity;    customerEntity = ORMHelper.retrieve(Customer.class,customerId);    ORMHelper.commitTransaction();    return customerEntity;   } catch (RuntimeException ex) {    ORMHelper.rollbackTransaction();    throw ex;    } finally {    ORMHelper.closeSession();   }  }  public void deleteCustomer( Customer customerEntity ) {   ORMHelper.openSession();   try {    ORMHelper.beginTransaction();    ORMHelper.delete(customerEntity);     ORMHelper.commitTransaction();   } catch (RuntimeException ex) {     ORMHelper.rollbackTransaction();    throw ex;   } finally {     ORMHelper.closeSession();   }  } }

清单 10 中演示了必须为迁移进行的更改。

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

时间:2011-09-18 Donald Vines

通过比较,EJB 3.0 SessionFacade 类不能实现 SessionBean 类,也不能实现 SessionBean 的回调 方法(setSessionContext、ejbCreate、ejbRemove、ejbActivate 和 ejbPassivate)。此外,EJB 3.0 中也不需要组件接口、home 接口和部署描述符。在 EJB 2.1 部署描述符中指定的值包括在具有 Java 5 注释的 EJB 3.0 SessionFacade 类中。

也就是说,对 SessionFacade 的业务方法没有任何更改,预期会在这里看到对 Hibernate 或 OpenJPA API 的大量调用。这是因为我们在 helper 类中封装了大多数 Hibernate/OpenJPA API,并且会 话 bean 使用了 helper 类。当然,您的应用程序可能没有构造为在 helper 类中封装 Hibernate/OpenJPA API,但是,如果并行比较对前些部分中 helper 类进行的更改,应该能够确定对用 于会话、事务和实体管理的 EJB 会话 bean 的更改是必需的。

迁移 Hibernate 对象关系映射

Hibernate 对象关系映射可以在启动时加载的 XML 映射文件集中定义。可以直接使用这些映射文件或 从嵌入源代码的 javadoc 样式注释中生成。在 Hibernate 的较新版本中,还可以通过 Java 5 注释定义 对象关系映射。

可以在 XML 映射文件集中定义 OpenJPA 对象关系映射,或者通过直接嵌入代码的 Java 5 注释定义 它们,该对象关系映射完全不需要映射文件。

在开发中,大多数遗留 Hibernate 应用程序使用 XML 映射文件,而大多数 OpenJPA 应用程序使用 Java 5 注释,但在生产中则将它们移动到 XML,这样对映射的简单更改不需要您修改源代码和重新构建 。

由于 XML 对 Hibernate 很常见,并且在 OpenJPA 中通常用于生产,所以在本部分中对映射使用 XML 。为帮助了解对象模型 (POJO) 中哪些内容是必需的,哪些不是必需的,还包括了相应的基础代码(不包 括注释)。

如果遗留 Hibernate 应用程序不使用映射文件(例如,使用 javadoc 样式的注释或 Java 5 注释

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号