データ・アクセスと Spring Framework
Spring Bean がデータ・ソースにアクセスするためには、Spring Framework が WebSphere® Application Server のランタイムに正常に委任を行い、また、それに統合されるように、それらの Bean を構成する必要があります。
Spring Framework は、エンタープライズ・アプリケーション環境において、基礎となるエンタープライズ・アプリケーション・ランタイムに委任を行うコンテナー管理レイヤーで Spring Bean をラップします。以下のセクションでは、データ・ソースにアクセスする Spring Bean を構成する場合の考慮事項について説明します。
アプリケーション・サーバーで構成されているデータ・ソースへのアクセス
Spring アプリケーションが Java™ Database Connectivity (JDBC) データ・ソースなどのリソースにアクセスするためには、アプリケーションは、アプリケーション・サーバーによって管理されるリソース・プロバイダーを使用する必要があります。
これを行うには、Spring アプリケーション・データ・ソースへのアクセスの構成 のトピックを参照してください。
JDBC ネイティブ接続
WebSphere Application Server は、Spring Framework が提供している NativeJdbcExtractor クラスの使用をサポートしていないため、このクラスを使用するシナリオは使用しないでください。このクラスの実装は、ネイティブの JDBC 接続にアクセスし、接続ハンドルの追跡と再関連付け、接続の共有、接続プールやトランザクションへの参加の管理など、アプリケーション・サーバーにおけるサービスの品質機能を迂回します。
別の方法として、アプリケーション・サーバーの WSCallHelper クラスを使用して、データ・ソースに対する非標準のベンダー拡張にアクセスできます。
Java Persistence API
WebSphere Application Server には 2 つの JPA プロバイダーが含まれています。1 つは JPA 2.1 用の EclipseLink に基づいており、もう 1 つは JPA 2.0 の Apache OpenJPA 実装に基づいています。詳しくは、関連リンクを参照してください。
Spring Framework を JPA 実装とともに使用するには、Spring Framework で提供されている JPA ヘルパー・クラスを org.springframework.orm.jpa パッケージで使用するよりも、JPA を直接使用することをお勧めします。
<persistence-context-ref>
<persistence-context-ref-name>some/name</persistence-context-ref-name>
<persistence-unit-name>pu_name</persistence-unit-name>
</persistence-context-ref>
ここで、pu_name は persistence.xml ファイルに定義されているパーシスタンス・ユニットの名前です。<jee:jndi-lookup id="entityManager" jndi-name="some/name" />
<persistence-unit-ref>
<persistence-unit-ref-name>some/ref_name</persistence-unit-ref-name>
<persistence-unit-name>pu_name</persistence-unit-name>
</persistence-unit-ref>
結果の EntityManagerFactory オブジェクトは、"entityManagerFactory" ID の下で使用可能です。
<jee:jndi-lookup id="entityManagerFactory" jndi-name="some/ref_name" />