Java Persistence API (JPA) フィーチャーの概要

アプリケーションで使用できる JPA フィーチャーが 3 つあります。 jpa-2.0 は、Apache OpenJPA オープン・ソース・プロジェクトに基づいて作成されています。 jpa-2.1 および jpa-2.2 は、EclipseLink オープン・ソース・プロジェクトに基づいて作成されています。

Open Liberty JPA を使用してマイクロサービス用のデータベースにアクセスしてデータを永続化する方法に関する最新情報については、 「マイクロサービスでのデータのアクセスおよび永続化」ガイドを参照してください。

jpa-2.0

Java™ Persistence API (JPA) 2.0 for WebSphere Application Server は、 Apache OpenJPA 2.2.x オープン・ソース・プロジェクトに基づいて構築されています。

Apache OpenJPA は、JPA 1.0 および 2.0 仕様に準拠する実装です。 OpenJPA を基本実装として使用する WebSphere® Application Server では、拡張機能を使用して、 WebSphere Application Server のお客様により多くのフィーチャーおよびユーティリティーを提供しています。 WebSphere Application Server 用のJPAは 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 アクセス・インテント、拡張トレース機能、コマンド・スクリプト、および翻訳されたメッセージ・ファイルのサポートが含まれます。 この製品の JPA のプロバイダーは、com.ibm.websphere.persistence.PersistenceProviderImpl です。

Apache OpenJPA は、パーシスタント環境を構成するためのプロパティーの使用をサポートしています。 JPA for WebSphere Application Server プロパティーは、接頭部 openjpa または wsjpa のいずれかを使用して指定できます。 共通のプロパティー・セットについて、必要に応じて openjpa 接頭部と wsjpa 接頭部を混合できます。 このルールの例外は wsjpa 固有の構成プロパティーであり、wsjpa 接頭部を使用します。 JPA for WebSphere Application Server固有のプロパティーを openjpa 接頭部とともに使用すると、問題のプロパティーが wsjpa プロパティーとして扱われることを示す警告メッセージがログに記録されます。 逆に、openjpa について、これは当てはまりません。 その場合、 問題のプロパティーは無視されます。

安定化されたフィーチャー: jpa-2.0 フィーチャーは安定化されました。 jpa-2.0 フィーチャーを引き続き使用できます。 ただし、最新の JPA フィーチャーの使用を検討してください。

jpa-2.1

Java Persistence API (JPA) 2.1 for WebSphere Application Server は、 EclipseLink オープン・ソース・プロジェクトに基づいて構築されています。 EclipseLink は、JPA 仕様のすべてのバージョンの参照実装です。 この製品の JPA のプロバイダーは、org.eclipse.persistence.jpa.PersistenceProvider です。

JPA 2.1 仕様は、JPA 2.0 仕様で使用できない新規フィーチャーを追加しました。 このようなフィーチャーには、以下のものがあります。

  • スキーマの生成
  • 型変換メソッド
  • 照会および検索操作におけるエンティティー・グラフ
  • 非同期パーシスタンス・コンテキスト
  • ストアード・プロシージャーの呼び出し
  • エンティティー・リスナー・クラスへの注入
  • JPQL 拡張
  • Criteria API の機能強化
  • ネイティブ照会のマッピング

これらのフィーチャーについて詳しくは、 JPA 2.1 仕様 を参照してください。 この製品は、EclipseLink API のサブセットも提供します。 詳しくは、 Liberty フィーチャー・ページの Java Persistence API 2.1を参照してください。

注: JPA 2.1 は、JPA 2.0と後方互換性があります。

jpa-2.2

Java Persistence API (JPA) 2.2 for WebSphere Application Server は、 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 フィーチャーと互換性があるという点で特殊です。 例えば、Java EE 7 フィーチャーである servlet-3.1 フィーチャーは、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: singleton フィーチャー com.ibm.websphere.appserver.javaeeCompatible-7.0 と com.ibm.websphere.appserver.javaeeCompatible-6.0 は、同時にロードできません。  構成済みフィーチャー jpa-2.1 と servlet-3.0 には、競合の原因となるフィーチャーが 1 つ以上組み込まれています。 ご使用の構成はサポートされていません。server.xml を更新して、両立しないフィーチャーを削除してください。