Java Eclipse中JPA项目和EJB项目的区别是什么?

Java Eclipse中JPA项目和EJB项目的区别是什么?,java,eclipse,jpa,jakarta-ee,ejb,Java,Eclipse,Jpa,Jakarta Ee,Ejb,什么时候用哪个 当我想要JSF+无状态Bean+JPA实体应用程序时,我需要EJB项目和动态Web项目集成在EAR项目中?EJB项目是一个专注于开发企业Java Bean的项目。通常,EJB依赖EntityBean进行持久化,持久化是使用JPA技术实现的(将JPA视为EJB的依赖项) 您可以选择独立于EJB创建JPA项目的原因是,有些人可能不想(或不需要)使用EJB,但他们仍然需要使用诸如JPA之类的ORM框架。例如,这种情况可能是一个web项目(即JSF),它将直接使用JPA进行持久化(无EJ

什么时候用哪个


当我想要JSF+无状态Bean+JPA实体应用程序时,我需要EJB项目和动态Web项目集成在EAR项目中?

EJB项目是一个专注于开发企业Java Bean的项目。通常,EJB依赖EntityBean进行持久化,持久化是使用JPA技术实现的(将JPA视为EJB的依赖项)

您可以选择独立于EJB创建JPA项目的原因是,有些人可能不想(或不需要)使用EJB,但他们仍然需要使用诸如JPA之类的ORM框架。例如,这种情况可能是一个web项目(即JSF),它将直接使用JPA进行持久化(无EJB)

要点是,尽管EJB3使用JPA实现持久性,但为了从JPA这样的ORM框架中获益,您不必在项目中使用EJB(除非您需要这样做)


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

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

如果您使用的是JavaEE1.5,那么您需要一个JSF的动态Web项目,对于无状态bean,您需要一个EJB项目,另外还需要一个企业项目来将WAR和JAR捆绑到EAR中。您可以在EJB项目本身中拥有与持久性相关的类,而不需要JPA项目


Java EE提供了独立于EJB使用JPA的功能,因此,如果您的应用程序不需要EJB,但仍希望使用JPA,则可以进行JPA项目。

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

Java持久性API是JSR220专家组工作的一部分。JPA2.0是JSR317专家组的工作

这种情况下的持久性包括三个方面:

the API itself, defined in the javax.persistence package
the Java Persistence Query Language (JPQL)
object/relational metadata
EnterpriseJavaBeans(EJB)是Sun Microsystems开发的Java API,它定义了多层客户机/服务器系统的组件体系结构

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

因为EJB系统是用Java编写的,所以它们与平台无关。由于是面向对象的,它们可以在现有系统中实现,而无需重新编译和配置

如果你想知道,JPA代表什么。