WSJPA パーシスタンス・プロバイダーの構成

WebSphere® Application Server パーシスタンス・プロバイダー (WSJPA) は、Java Persistence API (JPA) 2.0 のデフォルト・プロバイダーです。

このタスクについて

JPA for WebSphere Application Server パーシスタンス・プロバイダー WSJPA は、Apache OpenJPA パーシスタンス・プロバイダーから構成されたものですが、以下のような拡張機能や相違点があります。
  • DB2® pureQuery フィーチャーを使用した静的 SQL のサポート
  • アクセス・インテントのサポート
  • 拡張されたトレースのサポート
  • バージョン ID の生成
  • WebSphere 製品固有のコマンドおよびスクリプト
  • 翻訳済みメッセージ・ファイル
  • メモリー内キャッシュで、LAZY ロードされた多対 1 または 1 対 1 の関係がないかを確認します。wsjpa.BrokerImpl プロパティーを true に設定すると、LAZY フィールドの外部キー・データが使用可能な場合に、JPA 実装が実行時にメモリーから LAZY フィールドをロードしようとするように指定されます。以下のプロパティーを使用します。
    <property name="wsjpa.BrokerImpl" value="checkCacheForLazyFields=true"/> 
    このプロパティーは、多くのシナリオで有用になることがあります。例えば、別の個人 Person (B) に対して 1 対 1 の関係を持つ個人エンティティー Person(A) があり、Person(B) が L2 データ・キャッシュに保管されているものとします。このプロパティーが設定されている場合は、JPA 実装が Person(A) を検索する際に、Person(A) からロードされた外部キーを使用して、Person(A) から Person (B) への関係にデータが取り込まれます。
  • 以下の表は、JPA for WebSphere Application Server パーシスタンス・プロバイダーの構成プロパティーのデフォルト値が、Apache OpenJPA プロバイダーの場合とどのように違うかを示しています。
    表 1. 比較. JPA for WebSphere Application Server パーシスタンス・プロバイダーと Apache OpenJPA プロバイダーの比較
    プロパティー Apache OpenJPA のデフォルト値 JPA for WebSphere Application Server パーシスタンス・プロバイダーのデフォルト値
    openjpa.Compatibility StrictIdentityValues=false StrictIdentityValues=true
    openjpa.RuntimeUnenhancedClasses unsupported 警告
    openjpa.DynamicEnhancementAgent true false
    open.jdbc.DriverDataSource 自動 シンプル
トラブルの回避 (Avoid trouble) トラブルの回避 (Avoid trouble): OpenJPA 互換性プロパティーは、OpenJPA が特定のデータ型に対して生成するプロキシー型を削除しません (特に、GregorianCalendar などの日付型)。削除が行われないため、デシリアライゼーションの問題が生じることがあります。デシリアライゼーションの問題が生じた場合は、以下のメッセージのようなエラー・メッセージが発行されます。gotcha
Error Message is:org.codehaus.jackson.map.JsonMappingException:
Can not construct instance of org.apache.openjpa.util.java$util$GregorianCalendar$proxy,
problem: no suitable creator method found at
[Source: org.apache.http.conn.EofSensorInputStream@d83fbd5; line: 1, column: 4094]

デフォルトの JPA for WebSphere Application Server パーシスタンス・プロバイダーを使用する場合は、プロパティーによるオーバーライドに加えて、以下の JPA for WebSphere Application Server クラスが暗黙で使用されて Apache OpenJPA の対応するクラスがオーバーライドされます。

com.ibm.ws.persistence.jdbc.kernel.ConstraintUpdateManager;
com.ibm.ws.persistence.jdbc.kernel.WsJpaJDBCBrokerFactory;
com.ibm.ws.persistence.jdbc.sql.DB2Dictionary;
com.ibm.ws.persistence.jdbc.sql.OracleDictionary;
com.ibm.ws.persistence.jdbc.sql.SQLFactoryImpl;
com.ibm.ws.persistence.jdbc.sql.SQLServerDictionary;
com.ibm.ws.persistence.kernel.WsJpaBrokerImpl;
com.ibm.ws.persistence.kernel.WsJpaFinalizingBrokerImpl;

JPA プロバイダーが、Enterprise JavaBeans (EJB) モジュール内の persistence.xml ファイルの <provider> 要素内で構成されていない場合、このサーバーに対して現在構成されているデフォルトの JPA プロバイダーが使用されます。 本製品には、デフォルトのプロバイダーとして定義されている JPA for WebSphere Application Server パーシスタンス・プロバイダーがパッケージされています。ただし、管理コンソールを使用してこのデフォルトをオーバーライドし、他のデフォルトを指定することができます。

デフォルトのパーシスタンス・プロバイダーを設定するには、2 つの方法があります。

注:

デフォルトのパーシスタンス・プロバイダー値、デフォルトの Java Transaction API (JTA) データ・ソース Java Naming and Directory Interface (JNDI) 名値、およびデフォルトの非 JTA データ・ソース JNDI 名値を、Java 仮想マシン (JVM) のプロパティーを使って WebSphere Application Server バージョン 7.0 より前の製品で設定した場合、管理コンソールを使ってこれらの値を変更すると、JVM プロパティーで設定された値がオーバーライドされます。

これらのプロパティーには、com.ibm.websphere.jpa.default.provider、com.ibm.websphere.jpa.default.jta.datasource、および com.ibm.websphere.jpa.default.nonjta.datasource が含まれます。 これらのプロパティーのサポートは、非推奨になりました。このパネルでは、これらのプロパティーを使用して設定されていた値はすべてデフォルト値として表示されます。管理コンソールのパネルから 設定されたこれらの値は、JVM プロパティーを使用して設定された値をオーバーライドします。

手順


トピックのタイプを示すアイコン タスク・トピック



タイム・スタンプ・アイコン 最終更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tejb_jpadefaultpp
ファイル名:tejb_jpadefaultpp.html