ページの先頭行へ戻る
Interstage Application Server/Interstage Web Server Java EE運用ガイド

3.8.2 永続性プロバイダの設定方法

本製品では、以下の永続性プロバイダを使用できます。

使用する永続性プロバイダは、deployment descriptor (persistence.xml)に定義します。

Interstage永続性プロバイダ

Interstage永続性プロバイダを使用する場合、deployment descriptor (persistence.xml)の<provider>タグを記述しないでください。また、<provider>タグに相当する永続性ユニットプロパティをjavax.persistence.PersistenceのcreateEntityManagerFactory(String, Map)メソッドに指定しないでください。
Java SE環境で使用する場合、以下のモジュールをクラスパスに追加してください。

C:\Interstage\F3FMisjee\lib\toplink-essentials.jar

/opt/FJSVisjee/lib/toplink-essentials.jar

Java EE環境(Web、EJBまたはアプリケーションクライアントコンテナ)で使用する場合、上記モジュールは自動的にクラスパスに設定されるので追加する必要はありません。

なお、Java SEスタンドアロンアプリケーションにおいて、1:1または多:1のrelationshipでFetchType.LAZYによりデータをデータベースからロードする場合、javaコマンドの-javaagentオプションに上記モジュールのパスを指定してください。

-javaagentの設定例

> java -javaagent:C:\Interstage\F3FMisjee\lib\toplink-essentials.jar com.example.MyApp

注意

Interstage永続性プロバイダの注意事項

JPAが返却する例外には、例外のcauseとして、oracle.toplink.essentialsで始まる例外をスローする場合があります。oracle.toplink.essentialsで始まる例外クラスは、クラスパスに設定する上記モジュールに含まれています。このため、Java SEスタンドアロンアプリケーションからJPAを使用するEJBアプリケーションを呼び出す場合、JPAで発生した例外をJava SEスタンドアロンアプリケーションに返却する場合でも上記のクラスパスの設定が必要です。
クラスパスを設定しない場合、返却された例外をIIOP通信層で復元できずにIOP00810257のエラーが発生する場合があります。

その他の永続性プロバイダ

その他の永続性プロバイダを使用する場合、deployment descriptor (persistence.xml)の<provider>タグに永続性プロバイダのプロバイダクラス名を定義します。または、javax.persistence.PersistenceのcreateEntityManagerFactory(String, Map)メソッドにプロバイダクラス名を指定します。
その他の永続性プロバイダの利用については、動作を保証できません。問題が発生した場合は、永続性プロバイダ提供元に問い合わせてください。
永続性プロバイダのクラスは、利用するスコープによりアプリケーションのモジュール、またはクラスローダのクラスパスに追加してください。クラスローダのクラスパスの設定方法については、「3.19 クラスローダ」を参照してください。Java EEアプリケーションクライアントのクラスパス設定方法については、「5.9.1 Java EEアプリケーションクライアントの環境設定」を参照してください。

永続性プロバイダのプロバイダクラス名とクラスパスに必要なクラスまたはJarモジュールについては、その永続性プロバイダのマニュアルを参照してください。

その他の永続性プロバイダの定義例

<persistence xmlns="http://java.sun.com/xml/ns/persistence"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
                   http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
        version="1.0">
    <persistence-unit name="com.company.my.pu">
      <provider>com.example.jpa.PersistenceProviderImpl</provider>
      <jta-data-source>jdbc/myDatasource</jta-data-source>
    </persistence-unit>
</persistence>