2011-05-05 119 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編寫的,所以它們是獨立於平臺的。作爲面向對象的,它們可以在很少或沒有重新編譯和配置的情況下實現到已有的系統中。

相關問題