Java Persistence API (JPA) フィーチャーの概要
アプリケーションで使用できる JPA フィーチャーが 2 つあります。jpa-2.0 は、Apache OpenJPA オープン・ソース・プロジェクトに基づいて作成されています。jpa-2.1 は、EclipseLink オープン・ソース・プロジェクトに基づいて作成されています。
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 仕様に準拠する実装です。 WebSphere® Application Server は、ベース実装として OpenJPA を使用し、拡張機能を用いることによって、 さらに多くのフィーチャーおよびユーティリティーを 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 Access Intent、強化されたトレーシング機能、コマンド・スクリプト、および翻訳されたメッセージ・ファイルのサポートがあります。この製品の JPA のプロバイダーは、com.ibm.websphere.persistence.PersistenceProviderImpl です。
Apache OpenJPA は、パーシスタント環境を構成するためのプロパティーの使用をサポートしています。openjpa 接頭部または wsjpa 接頭部のいずれかを使用して、JPA for WebSphere Application Server のプロパティーを指定することができます。共通のプロパティー・セットについて、必要に応じて openjpa 接頭部と wsjpa 接頭部を混合できます。このルールの例外は wsjpa 固有の構成プロパティーであり、wsjpa 接頭部を使用します。JPA for WebSphere Application Server 固有のプロパティーを openjpa 接頭部とともに使用した場合、問題のあるプロパティーが wsjpa プロパティーとして扱われることを示す警告メッセージがログに記録されます。逆に、openjpa 接頭部について、これは当てはまりません。その場合、問題のあるプロパティーは無視されます。
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 フィーチャーの互換性
- 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 を更新して、両立しないフィーチャーを削除してください。