持久化規范JPA(JavapersistenceAPI)
EJB3最重要的特性是POJO編程模型,對開發人員的影響將是非常大的,因為他降低了開發人員編寫EJB的要求。EJB3的bean類將更像常規的Javabean。不要求像過去那樣實現特殊的回調界面或者擴展EJB類。所以它將使EJB的開發更像常規的Java開發。從EJB3.0項目的開發情況來看,除了第一個項目開發周期相對有些長之外(因為開發人員之前尚未掌握EJB3.0,相當于邊學邊用),后面的項目從開發周期到以后的維護時間都明顯優于JDBC+javabean或sprint+hibernate的項目,軟件在模塊劃分上更清晰,業務模塊重用方面也有所提高(多種客戶端J2ME,Web,Wap重用業務對象),數據庫移植性方面非常棒,只需修改一下數據源就很容易切換數據庫。
JavaEE需要一個與Hibernate類似的O/R映射的框架,這個規范為JSR-220;Hibernate僅關注ORM,而EJB3.0更多則更多表現為一種組件框架,其中包含ORM部分。EJB3.0在設計過程中,曾經得益于Hibernate的成功,EJB3.0EntityBean的設計理念完全來自于Hibernate。Hibernate的EntityManager產品為EJB3.0的EntityBean的一種Implementation。
JPA基于JavaSE5.0的注記實現O/Rmapping,Hibernate基于XML文件,雖然Hibernate也提供HibernateAnnotation支持Annotation方式。有兩種定義映射的方法:元數據(注記)和映射文件。盡管我們提倡采用元數據的方法,但應該也注意到了它所帶來的不便。從本質上講,此方法牽涉應用程序的兩個邏輯層:域模型和映射信息。因為這兩個層是分散的,所以這兩個層需要使用不同技術進行單獨測試。元數據方法本身不會影響層的可測試性。更確切的說,元數據方法使這兩個層好像只是一個層,由于受一系列因素的影響,這可能會引起問題。
Hibernate只是一種O/R映射框架,JavaEE更需要一個O/R映射規范.JPA為EJB3.0規范中的一個重要內容,基于JPA的實現軟件具有與Hibernate同樣的優勢。JPA為輕量級的對象關系映射實現持久化存儲的API。JPA可以使用在JavaSE和JavaEE環境中。
什么是JPA?
JavaEE5.0用于對象持久化的API
EJB3.0規范的重要組成部分
吸取了主流持久層框架例如Hibernate的優點
Oracle提供Toplink實現,為Oracle的開源JPA實現。
Bea提供KODO實現,被包含在Bea的weblogic商用服務器中。
JBoss提供HibernateEntityManager實現,JBossAS4.2.1支持EJB3.0。
ApacheOpenJPA為Apache軟件許可下的EJB3Persistence標準的開源實現,下載地址為http://openjpa.apache.org/。OpenJPA提供了保存點功能,但JPA規范沒有。因此,希望使用保存點的OpenJPA開發人員應該對代碼的大部分內容使用JPA規范,而借助OpenJPAEntityManager來設置和管理保存點。
您正在閱讀:持久化規范JPA(JavapersistenceAPI)【編輯推薦】