JPA與EJB3的關系


轉:http://blog.csdn.net/zhaoqianjava/article/details/6924672

JPA是基於Java持久化的解決方案,主要是為了解決ORM框架的差異,它的出現在某種程度上能夠解決目前ORM框架之間不能夠兼容的問題,對開發人員來說,能夠更好的在JPA規范下進行系統開發。

 

JPA全稱為Java Persistence API Java持久化APISun公司在Java EE 5規范中提出的Java持久化接口。JPA吸取了目前Java持久化技術的優點,旨在規范、簡化Java對象的持久化工作。

如圖1.3說明了JPA在系統架構中的作用,使用JPA持久化對象,而不是依賴於某一個ORM框架。

JPA的優勢

 

事實上,JPA並不是一項技術,而是一種標准,因為JPA只是一套接口,本身不能完成任何事情。JPA只是規范了Java持久化的官方標准。JPA有以下幾個優點。

         可持久化Java對象。JPA能夠直接持久化復雜的Java對象,並能夠使用JPQL語言進行復雜的查詢。JPQLJPA專用的查詢語言,是類似於SQL的面向對象的查詢語言。

         使用簡單。JPA使用注釋(Annotation)定義Java對象與關系數據庫之間的映射,而傳統的ORM多使用xml配置文件。JPA使用起來比ORM要方便。使用JPA不用關注底層使用什么數據庫。

         規范標准化。JPAJCP組織發布的,是Java官方規定的統一的API。目前已經有多種框架實現JPA標准。使用了JPA的系統可以自由選擇遵循JPA標准的框架,並能夠自由更換。

         事務性、大數據量。JPA底層使用關系數據庫進行存儲,因此具備關系數據庫的特點,例如事務性、數據完整性、並發訪問、大數據量等。

         與其他持久化技術相比,JPA有很大的技術優勢。表列出了JPA與其他持久化技術的比較。

 


 

EJB3與JPA的關系

由於歷史的原因,EJB 3JPA有着藕斷絲連的關系。EJB 2.X中,EJB有三種類型的Bean,分別是會話BeanSession Bean)、實體BeanEntity Bean)和消息驅動BeanMessage Driven Bean)。

隨着EJB3規范的推出,EJB中的實體Bean(Enity Bean)逐漸被JPA規范所替代,這也是為什么JPA的規范會包含在EJB3的規范中的原因.

但JPA不僅能夠在EJB環境中使用,也能夠在J2SE的環境中使用,相對於EJB2.X的實體BEAN,使用的范圍更廣.

總之,簡單的說,JPA雖然出自EJB3,但是其使用的范圍卻大於EJB3,不僅可以在JavaEE5中,也可以在JavaSE的環境中,如圖所示EJB3和JPA的關系.

 

 

目前已經有多個ORM開源框架支持JPA,如HibernateTopLinkOpenJPA等等。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM