「Java 持續性 API (JPA)」特性概觀

您的應用程式可以採用三種 JPA 特性。 jpa-2.0 是以 Apache OpenJPA 開放程式碼專案為建置基礎。 jpa-2.1jpa-2.2 都是以 EclipseLink 開放程式碼專案為建置基礎。

Open Liberty 如需如何使用 JPA 來存取資料並將資料持續保存至微服務的資料庫的最新資訊,請參閱 存取及持續保存微服務手冊中的資料

jpa-2.0

適用於 WebSphere Application Server 的 Java™ 持續性 API (JPA) 2.0 是以 Apache OpenJPA 2.2.x 開放程式碼專案為建置基礎。

Apache OpenJPA 符合 JPA 1.0 和 2.0 規格的實作標準。 使用 OpenJPA 作為基本實作, WebSphere® Application Server 會採用延伸,為 WebSphere Application Server 客戶提供更多特性和公用程式。 因為 JPA for WebSphere Application Server 是從 OpenJPA 建置,所有 OpenJPA 功能、延伸及配置不受 WebSphere Application Server 延伸的影響。 您不需要變更 OpenJPA 應用程式,即可在 WebSphere Application Server中使用這些應用程式。

JPA for WebSphere Application Server 不只提供與 OpenJPA 的相容性。 JPA for WebSphere Application Server 包含一組用於應用程式開發和部署的工具。 JPA for WebSphere Application Server 的其他特性包括支援 DB2®Optim pureQuery Runtime、 DB2 最佳化、「JPA 存取目的」、加強追蹤功能、指令 Script 及翻譯的訊息檔案。 此產品的 JPA 提供者是 com.ibm.websphere.persistence.PersistenceProviderImpl

Apache OpenJPA 支援使用內容來配置持續性環境。 您可以使用 openjpa wsjpa 字首來指定 JPA for WebSphere Application Server 內容。 在一般的內容集中,您可以視需要混合使用 openjpawsjpa 字首。 打破此規則的是 wsjpa 特定的配置內容,此內容需使用 wsjpa 字首。 當 JPA for WebSphere Application Server特定內容與 openjpa 字首一起使用時,會記載一則警告訊息,指出會將不當的內容視為 wsjpa 內容。 反過來說,對 openjpa 字首卻未必如此。 在該情況下,會忽略不當的內容。

已穩定特性: jpa-2.0 特性已穩定。 您可以繼續使用 jpa-2.0 特性。 不過,請考量使用較新的 JPA 特性。

jpa-2.1

WebSphere Application Server 的 Java 持續性 API (JPA) 2.1 是以 EclipseLink 開放程式碼專案為建置基礎。 EclipseLink 是 JPA 規格所有版本的參照實作。 此產品的 JPA 提供者是 org.eclipse.persistence.jpa.PersistenceProvider

JPA 2.1 規格新增了 JPA 2.0 規格所沒有的特性。 這些特性包括:

  • 綱目產生
  • 類型轉換方法
  • 查詢和尋找作業中的實體圖形
  • 未同步化的持續性環境定義
  • 儲存程序呼叫
  • 注入至「實體」接聽器類別
  • JPQL 的加強
  • 準則 API 的加強
  • 原生查詢的對映

如需這些特性的詳細資料,請參閱 JPA 2.1 規格 。 此產品亦提供一部分的 EclipseLink API。 請參閱 Liberty 特性頁面 Java 持續性 API 2.1,以取得詳細資料。

附註: JPA 2.1 與 JPA 2.0 舊版相容。

jpa-2.2

WebSphere Application Server 的 Java 持續性 API (JPA) 2.2 是以 EclipseLink 開放程式碼專案為建置基礎。 EclipseLink 是 JPA 規格所有版本的參照實作。 此產品的 JPA 提供者是 org.eclipse.persistence.jpa.PersistenceProvider

附註: JPA 2.2 與 JPA 2.1 和 JPA 2.0 舊版相容。

Open Liberty 如需如何使用 JPA 來存取資料並將資料持續保存至微服務的資料庫的最新資訊,請參閱 存取及持續保存微服務手冊中的資料

JPA 特性的相容性

jpa-2.0

jpa-2.0 特性是 JPA 2.0 規格的實作,並以 Apache OpenJPA 為基礎。 此特性是 Java Platform Enterprise Edition (Java EE) 6 技術系列的一部分,但其特殊之處在於,它與其他的 Java EE 7 特性相容。 例如,servlet-3.1 特性是一項 Java EE 7 特性,卻可與 jpa-2.0 特性搭配使用。 這可讓應用程式繼續使用現有的 JPA 提供者,卻還能使用新的 Java EE 7 特性。

jpa-2.1

jpa-2.1 特性是 JPA 2.1 規格實作,並由 EclipseLink 支援。 此特性只相容於其他 Java EE 7 特性。 如果 jpa-2.1 特性與其他 Java EE 6 特性搭配使用,會在 message.log 檔中產生下列錯誤。

CWWKF0033E: 單態特性 com.ibm.websphere.appserver.javaeeCompatible-7.0 和 com.ibm.websphere.appserver.javaeeCompatible-6.0 不能同時載入。  所配置的特性 jpa-2.1 和 servlet-3.0 含有一或多個造成衝突的特性。 不支援您的配置;請更新 server.xml,以移除不相容的特性。