2011-05-05 100 views

回答

14

EJB项目是一个专注于Enterprise Java Beans开发的项目。通常,EJB依赖Entitity Beans进行持久化,这是使用JPA技术实现的(将JPA视为EJB的依赖关系)。

您可以选择独立于EJB来创建JPA项目的原因是,有些人可能不想使用(或不需要)EJB,但仍然需要使用ORM框架作为JPA。这种情况可能是一个Web项目(即JSF),它将直接使用JPA来实现持久性(无EJB)。

需要指出的是,虽然EJB 3使用JPA来实现持久性,但您不必在项目中使用EJB(除非需要这样做),才能从JPA等ORM框架中受益。

现在,要在eclipse上的EJB项目上启用JPA,请右键单击项目,转到“Project Facets”选项并选择JPA构面。通过这样做,eclipse将添加所需的库,创建必要的工件(persistence.xml)并在IDE上启用JPA相关工具。

+3

如果您想知道,JPA代表[Java持久性API](http://en.wikipedia.org/wiki/Java_Persistence_API)。 – 2012-04-13 04:08:17

1

这取决于您正在使用的Java EE版本。在Java EE 6中,我们可以在WAR文件中包含EJB。所以一个动态Web项目就足够了。

如果您使用的是Java EE 1.5,那么您需要为JSF和无状态bean提供动态Web项目,您需要有一个EJB项目以及一个企业项目需要将WAR和JAR捆绑到一个EAR中。您可以在EJB项目本身中拥有与持久性相关的类,并且不需要这里的JPA项目。

Java EE提供了使用独立于EJB的JPA的工具,因此如果您的应用程序不需要EJB但仍想使用JPA,那么您可以选择JPA项目。

5

Java持久性API(有时称为JPA)是一种Java编程语言规范,它描述了在使用Java平台标准版和Java平台企业版的应用程序中管理关系数据。

Java持久性API是作为JSR 220专家组工作的一部分而发起的。 JPA 2.0是JSR 317专家组的工作。

持续在这一背景下涵盖以下三个方面:

the API itself, defined in the javax.persistence package 
the Java Persistence Query Language (JPQL) 
object/relational metadata 

的Enterprise JavaBeans(EJB)是由Sun Microsystems定义为多层客户机/服务器系统中的组件架构开发的Java API。

EJB系统允许开发人员专注于模型的实际业务架构,而不用担心连接所有工作部件所需的编程和编码的数量。这个任务留给EJB服务器供应商。开发人员只需设计(或购买)所需的EJB组件并将其安排在服务器上。

因为EJB系统是用Java编写的,所以它们是独立于平台的。作为面向对象的,它们可以在很少或没有重新编译和配置的情况下实现到已有的系统中。

相关问题