WSJPA パーシスタンス・プロバイダーの構成
WebSphere® Application Server パーシスタンス・プロバイダー (WSJPA) は、Java Persistence API (JPA) 2.0 のデフォルト・プロバイダーです。
このタスクについて
- DB2® pureQuery フィーチャーを使用した静的 SQL のサポート
- アクセス・インテントのサポート
- 拡張されたトレースのサポート
- バージョン ID の生成
- WebSphere 製品固有のコマンドおよびスクリプト
- 翻訳済みメッセージ・ファイル
- メモリー内キャッシュで、LAZY ロードされた多対 1 または 1 対 1 の関係がないかを確認します。wsjpa.BrokerImpl プロパティーを true に設定すると、LAZY フィールドの外部キー・データが使用可能な場合に、JPA 実装が実行時にメモリーから LAZY フィールドをロードしようとするように指定されます。以下のプロパティーを使用します。
このプロパティーは、多くのシナリオで有用になることがあります。例えば、別の個人 Person (B) に対して 1 対 1 の関係を持つ個人エンティティー Person(A) があり、Person(B) が L2 データ・キャッシュに保管されているものとします。このプロパティーが設定されている場合は、JPA 実装が Person(A) を検索する際に、Person(A) からロードされた外部キーを使用して、Person(A) から Person (B) への関係にデータが取り込まれます。<property name="wsjpa.BrokerImpl" value="checkCacheForLazyFields=true"/>
- 以下の表は、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 自動 シンプル

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 プロパティーを使用して設定された値をオーバーライドします。