JPA教學

任何企業應用程序通過存儲和檢索大量數據進行數據庫操作。儘管所有的存儲管理提供技術,應用程序開發人員通常很難有效地執行數據庫操作。

一般情況下,Java開發人員使用大量的代碼,或使用專有的架構與數據庫進行交互,而使用JPA與數據庫綁定交互負擔顯著降低。它形成(數據庫程序)對象模型之間的橋樑(Java程序)和關係模型。

關係型和對象模型之間的不匹配

關係對象表示以表格的形式,而對象模型表示的對象格式的相互連接的圖形。而存儲和檢索來自關係數據庫的對象模型,一些不匹配的發生是由於以下原因:

  • 粒度:對象模型比關係模型更精細。

  • 亞型:亞型(指繼承)所有類型的關係數據庫不支持。

  • 標識:如對象模型,關係模型並沒有同時編寫暴露身份。

  • 關聯:關係模型無法確定多重關係,同時尋找到一個對象域模型。

  • 數據導航:在一個對象網絡對象之間的數據導航是在這兩種模式中有所不同。

JPA是什麼?

Java持久性API(簡稱JAP)是類和方法的集合,以海量數據關係映射持久並存儲到數據庫,這是由Oracle公司提供方案技術。

在哪裏使用JPA?

爲了減少編寫代碼,對象關係管理的負擔,程序員遵循「JPA提供者」框架,它可以方便地與數據庫實例的交互。這裏所需要的框架接管JPA。

JPA 歷史

早期版本的EJB,定義持久層結合使用 javax.ejb.EntityBean 接口作爲業務邏輯層。

  • 同時引入EJB3.0的持久層分離,並指定爲JPA1.0(Java持久性API)。這個API規範隨着JAVA EE5對2006年5月11日使用JSR220規範發佈。

  • JPA2.0的JAVA EE 6規範發佈於2009年12月10日併成Java Community Process JSR317 的一部分。

  • JPA2.1使用JSR338 的 JAVA EE7的規範發佈於2013年4月22日。

JPA提供者

JPA是一個開源的API,因此各企業廠商如Oracle,Redhat,Eclipse等,通過增加 JPA 持續性,在提供JPA的新產品。這些產品包括:

Hibernate, Eclipselink, Toplink, Spring Data JPA, etc.