使用 Apache OpenJPA 开发 EJB 3.0 应用,第 8 部分: 在 Java EE 环境下开发、部署 OpenJPA 应用
2010-04-19 00:00:00 来源:WEB开发网在 本系列 文章的第 1 部分:OpenJPA 与 EJB 3.0中介绍 OpenJPA 时,曾经提到“OpenJPA 可以作为独立的持久层框架发挥作用,也可以轻松的与其它 Java EE 应用框架或者符合 EJB3.0 标准的容器集成”,在本系列的前面几篇文章中都只是讲解了如何将 OpenJPA 作为独立的持久层框架发挥作用,在本文中,我们将会了解如何在 JBoss 应用服务器中使用 OpenJPA 开发实体 Bean、并且用 SessionBean 封装实体 Bean 操作、在客户端通过 Local 接口访问的开发、部署过程。
融入 Java EE
OpenJPA 是标准的 JPA 框架,因此它能够被任何的 EJB3.0 容器所集成,作为 JPA 的一种实现。比如我们可以将 JBoss 应用服务器中的 JPA 实现框架由系统默认的 Hibernate 切换成 OpenJPA,同样,我们可以将 Websphere、WebLogic 等的 JPA 实现框架由系统默认的框架切换成 OpenJPA。
要将 OpenJPA 容器 Java EE 容器,和 OpenJPA 作为独立框架运行时相比需要完成几部分的转换:
部署形式变为 EJB Jar 或者 EAR;OpenJPA 应用在 Java EE 环境下部署形式是 EJB Jar 或者 EAR,而不再是独立的 Java 应用或者 Servlet 容器中的 Web 应用。
使用系统级 JDBC 数据源,将事务处理委托给 JTA 事务;
在前面几篇文章中,我们开发 OpenJPA 应用时都是在 OpenJPA 配置文件 persistence.xml 文件中直接提供访问数据库的 JDBC 配置,操作实体的时候,我们也需要处理使用 entityManager.getTransaction().begin()、 entityManager.getTransaction().commit() 这样的语句显示的处理事务。
在 Java EE 环境下,JDBC 通常都是由容器管理,JDBC 访问时的事务也通常使用容器管理,这样可以获得更大的灵活性,也能够最大化的利用容器的特性让企业应用更加强壮。要将 OpenJPA 容器 Java EE 容器,我们首要的任务就是将 OpenJPA 中的应用级 JDBC 数据源切换到 Java EE 容器的 JDBC 数据源上,另外还需要将事务处理委托给 Java EE 容器提供的 JTA 事务,而不在使用 entityManager.getTransaction().begin()、 entityManager.getTransaction().commit() 这样的语句显示的处理事务。
更多精彩
赞助商链接