Java SE 環境用の JPA 2.x アプリケーションの開発
パーシスタンス・アプリケーションを作成して、Java™ SE 環境でのアプリケーション・サーバー・コンテナーの外部でテストします。
このタスクについて
重要: これらの JPA コマンド・ツールを使用する場合は、これらのツールを profile_root/bin ディレクトリーから (app_server_root/bin ディレクトリーからではなく) 実行して、コマンドがリリース・レベルで最新のバージョンであることを確認します。
このタスクでは、JPA 2.1 インターフェースでコンパイルするため、クラスパスに com.ibm.ws.jpa-2.1.thinclient_9.0.jar というスタンドアロン Java アーカイブ (JAR) ファイルを指定する必要があります。 JPA 2.0 インターフェースでコンパイルするには、クラスパスに com.ibm.ws.jpa-2.0.thinclient_9.0.jar を指定します。 このスタンドアロン JAR ファイルは、インストール・イメージから入手できます。サーバー・インストール・イメージにおけるこれらのファイルの位置は、${app_server_root}/runtimes/ ディレクトリーの中です。
重要: Java Persistence API (JPA) アプリケーションでは、コンテナー管理パーシスタンス (CMP) または Bean 管理パーシスタンス (BMP) を使用するアプリケーションとは異なる構成手法が必要です。また、CMP または BMP を実装するアプリケーションに関連した通常のデプロイメント手法に従いません。
JPA アプリケーションでは、persistence.xml
ファイルでパーシスタンス・ユニットを定義して正しいプロパティーを構成し、
そのアプリケーションが Java SE 環境で実行できるようにする必要があります。
Java
SE 環境で JPA アプリケーションを実行する場合には、以下のような考慮事項があります。
- リソースの注入は使用できません。 各サービスは、明確に、またはプログラマチックに構成する必要があります。
- EntityManagerFactory および EntityManager のライフサイクルは、アプリケーションによって管理されます。 アプリケーションでは、各構成体の作成、操作、および削除をプログラマチックに制御します。
手順
例
以下に、Java SE 環境用の persistence.xml ファイルの例を示します。
EclipseLink の場合:
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.1"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
<persistence-unit name="TheWildZooPU" transaction-type="RESOURCE_LOCAL">
<!-- additional Mapping file, in addition to orm.xml>
<mapping-file>META-INF/JPAorm.xml</mapping-file>
<class>com.company.bean.jpa.PersistebleObjectImpl</class>
<class>com.company.bean.jpa.Animal</class>
<class>com.company.bean.jpa.Dog</class>
<class>com.company.bean.jpa.Cat</class>
<properties>
<property name="javax.persistence.jdbc.driver"
value="org.apache.derby.jdbc.EmbeddedDriver"/>
<property name="javax.persistence.jdbc.url"
value="jdbc:derby:target/database/jpa-test-database;create=true" />
<property name="javax.persistence.schema-generation.database.action"
value="create" />
<property name="javax.persistence.jdbc.user"
value="user" />
<property name="javax.persistence.jdbc.password"
value="password"/>
</properties>
</persistence-unit>
</persistence>
OpenJPA の場合:
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
version="2.0"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="TheWildZooPU" transaction-type="RESOURCE_LOCAL">
<!-- additional Mapping file, in addition to orm.xml>
<mapping-file>META-INF/JPAorm.xml</mapping-file>
<class>com.company.bean.jpa.PersistebleObjectImpl</class>
<class>com.company.bean.jpa.Animal</class>
<class>com.company.bean.jpa.Dog</class>
<class>com.company.bean.jpa.Cat</class>
<properties>
<property name="openjpa.ConnectionDriverName"
value="org.apache.derby.jdbc.EmbeddedDriver" />
<property name="openjpa.ConnectionURL"
value="jdbc:derby:target/database/jpa-test-database;create=true" />
<property name="openjpa.Log"
value="DefaultLevel=INFO,SQL=TRACE,File=./dist/jpaEnhancerLog.log,Runtime=INFO ,Tool=INFO" />
<property name="openjpa.ConnectionFactoryProperties"
value="PrettyPrint=true,PrettyPrintLineLength=72" />
<property name="openjpa.jdbc.SynchronizeMappings"
value="buildSchema(ForeignKeys=true)" />
<property name="openjpa.ConnectionUserName"
value="user" />
<property name="openjpa.ConnectionPassword"
value="password"/>
</properties>
</persistence-unit>
</persistence>