[8.5.5.6 或更新版本]

Java Persistence API 2.1 行為的變更

如果您的應用程式採用 jpa-2.0 特性,建議您繼續讓現有的應用程式繼續採用 jpa-2.0 特性,以防發生任何移轉問題。若是新的應用程式,建議您使用 jpa-2.1 特性,以便充分利用 JPA 2.1 規格所提供的新特性。如果您想讓現有的應用程式改用 jpa-2.1 特性,而不使用 jpa-2.0 特性,可能需要在移轉程序中調整應用程式。

jpa-2.0jpa-2.1 之間的差異

以下是 jpa-2.0jpa-2.1 特性之間幾項您需要注意的主要差異:

PersistenceProvider 類別名稱
jpa-2.0
  • IBM® 提供者:com.ibm.websphere.persistence.PersistenceProviderImpl
  • OpenJPA 提供者:org.apache.openjpa.persistence.PersistenceProviderImpl
jpa-2.1
  • org.eclipse.persistence.jpa.PersistenceProvider
快取行為

jpa-2.0:依預設會停用快取。如果您的應用程式需要利用 L2 快取,必須明確啟用它。

jpa-2.1:依預設,EclipseLink 提供者會啟用 L2 快取和 QueryCache。您必須確定這項設定是您應用程式的最佳選項。如果您是在叢集等之類的分散式環境中執行,則需要停用快取,或是瞭解不同的節點可能有不同的資料。

加強 / 編排差異

jpa-2.0:OpenJPA 需要加強實體。如需相關資訊,請參閱加強 JPA 實體說明文件。

jpa-2.1:EclipseLink 可以搭配未加強的實體使用。WebSphere Application Server 支援靜態加強。

有些特性可能無法使用,例如:延遲載入和某些效能的提昇。

  • 如果實體類別經過靜態加強,以便與 jpa-2.0 (OpenJPA) 提供者搭配使用,在使用 jpa-2.1 提供者之前,必須重新編譯這些類別。
資料來源用法的差異

jpa-2.0 特性很少使用 non-jta-datasource,因此當您調整應用程式時,需要建立少量的 non-jta-datasource 連線。

jpa-2.1 在讀取資料以及交易不在作用中時,就會使用 non-jta-datasource 連線。也就是說,當使用這項特性時,需要較大的 non-jta-datasource 連線儲存區。

如需瞭解這兩個 JPA 提供者之間的其他差異,請參閱 OpenJPA -> EclipseLink 移轉指南頁面

OpenJPA 所提供的 JPA 2.1 特性

OpenJPA 是 JPA 2.0 提供者,它有一些特性的運作方式類似於 JPA 2.1 的新特性。也就是說,如果您的現有應用程式使用 jpa-2.0 特性,而想使用一些 JPA 2.1 新特性,並不需要切換至 jpa-2.1 特性。對於新特性,您倒是可以使用 OpenJPA 所提供的同等特性。OpenJPA 所提供的部分 JPA 2.1 重要特性如下:

綱目產生

此特性可讓您產生 DDL,或直接與資料庫互動,以根據 JPA 實體定義來定義表格綱目。如需相關資訊,請參閱 JPA 2.1 規格第 9.4 節。

OpenJPA 同等特性:綱目對映器

實體圖形

此特性可讓您指定實體物件圖形的提取或處理方式。如需相關資訊,請參閱 JPA 2.1 規格第 3.7 節。

OpenJPA 同等特性:FetchPlan 和 FetchGroup

儲存程序查詢

此特性可讓您呼叫儲存在資料庫中的程序。如需相關資訊,請參閱 JPA 2.1 規格第 3.10.17 節。

OpenJPA 同等特性:查詢呼叫

基本屬性類型的轉換

此特性可讓您在屬性實體表示法與資料庫表示法之間,轉換基本類型屬性。如需相關資訊,請參閱 JPA 2.1 規格第 3.8 節。

OpenJPA 同等特性:外部化程式特性

@Index 和 @ForeignKey 註釋

請參閱 JPA 2.1 規格的第 11.1.19 節與第 11.1.23 節。

OpenJPA 同等特性:OpenJPA 的 @Index 和 @ForeignKey

EntityManager、Cache 的 unwrap 公用程式方法

請參閱 JPA 2.1 規格的第 3.1.1 節與第 7.10 節。

OpenJPA Externalizer:EntityManagerImpl.unwrap()OpenJPAPersistence.cast()

對映原生 SQL 結果時的物件建構

請參閱 JPA 2.1 規格的第 3.10.16.2.2 節。

OpenJPA 同等特性:ResultShape 物件


指示主題類型的圖示 概念主題

資訊中心條款 | 意見


「時間戳記」圖示 前次更新: 2015 年 6 月 22 日
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=phil&product=was-libcore-mp&topic=cwlp_jpa21_behavior
檔名:cwlp_jpa21_behavior.html