wsappid コマンド
Java™ Persistence API (JPA) 仕様では、エンティティーの 1 次キーを複数の列で構成することがサポートされています。 この場合、1 次キーはコンポジット 1 次キーまたは複合 1 次キーと呼ばれます。コンポジット 1 次キーを管理するには、@IdClass アノテーションで指定される ID クラスを提供します。 コンポジット 1 次キーを使用するエンティティーの ID クラスを生成するには、JPA の識別ツールを使用します。
構文
このコマンドを実行する前に、クラスパスに persistence.xml ファイルのコピーを配置するか、または -p [path_to_persistence.xml] 引数内でこのファイルをプロパティー・ファイルとして指定する必要があります。このコマンドは、profile_root ディレクトリーの bin サブディレクトリーから実行します。
コマンド構文は次のようになります。
![[AIX]](../images/aixlogo.gif)
![[HP-UX]](../images/hpux.gif)
![[Linux]](../images/linux.gif)
![[Solaris]](../images/solaris.gif)
![[z/OS]](../images/ngzos.gif)
wsappid.sh [parameters][arguments]
![[IBM i]](../images/iseries.gif)
wsappid [parameters][arguments]
![[Windows]](../images/windows.gif)
wsappid.bat [parameters][arguments]
パラメーター
- -directory/-d <output_directory>: 出力ディレクトリーのパスです。
ディレクトリーと生成された出力 ID クラス・パッケージが一致しない場合は、このディレクトリーの下にパッケージ構造が作成されます。 このパラメーターを指定しない場合、wsappid ツールでは .java ファイルのディレクトリーを検索し、パーシスタンスをサポートするクラスを見つけようと試みます。.java ファイルが見つからない場合、wsappid ツールでは現行ディレクトリーが使用されます。
- -ignoreErrors/-i <true/t | false/f>: このパラメーターを false に設定している場合に、アプリケーション ID を使用しないクラスに対して、このツールを実行すると、例外が発生します。 また、クラスに継承の階層内の基本クラスがない場合にもエラーが発生します。
- -token/-t <token>: ストリング形式のオブジェクト ID 内で結合されてストリング化された 1 次キーの個々の値を区別する場合に使用するトークンです。
このオプションを使用するのは、1 次キー・フィールドが複数ある場合のみです。 デフォルトは "::" です。
- -name/-n <id_class_name>: 生成する ID クラスの名前です。
このオプションを指定した場合、wsappid ツールはただ 1 つのクラスに関して実行する必要があります。クラス・メタデータによってオブジェクトの ID クラスの名前が既に設定されている場合、このオプションは無視されます。 名前が完全に修飾されていない場合、パーシスタンス・クラスのパッケージが追加されて、完全修飾名 が形成されます。
- suffix <id_class_suffix>: 各パーシスタント・クラスに接尾部を付加して ID クラス名を形成するためのストリングです。
このオプションは、-name/-n パラメーターによって、またはメタデータで指定されたオブジェクト ID クラスによってオーバーライドされます。
- パーシスタント・クラスのフルネーム
- パーシスタント・クラスの .java 名
- パーシスタント・クラスの .class ファイル
使用法
識別ツールとアプリケーション・サーバー用 JPA を組み合わせると、コンポジット ID を使用するエンティティーの ID クラスの作成タスクが簡単になります。 コンポジット ID とは、1 次キーとして複数のフィールドを持つ ID のことです。 エンティティー・クラスをコンパイルし、このエンティティー・クラス内で 1 次キーを識別する必要があります。profile_root/bin/ ディレクトリーで、コマンド行から wsappid ツールを実行します。このコマンドを実行すると、エンティティーのコンポジット ID を表す新しいクラスが生成されます。 メッセージおよびエラーは、指定されたコンソールに記録されます。
例
@Entity
public class Employee {
@Id
private int division;
@Id private int id;
// . . .
}
このエンティティーを使用する前に、1 つの ID クラスが必要です。この例では、エンティティーが src/main/java ディレクトリー内にあると想定します。Magazine エンティティーの ID クラスを生成するには、次のコマンドを実行します。
![[AIX]](../images/aixlogo.gif)
![[HP-UX]](../images/hpux.gif)
![[Linux]](../images/linux.gif)
![[Solaris]](../images/solaris.gif)
![[z/OS]](../images/ngzos.gif)
wsappid.sh -s Id src/main/java/Employee.java -d src/main/java
![[IBM i]](../images/iseries.gif)
wsappid -s Id src/main/java/Employee.java -d src/main/java
![[Windows]](../images/windows.gif)
wsappid.bat -s Id src¥main¥java¥Employee.java -d src¥main¥java
新しいクラス EmployeeId.java が src/main/java ディレクトリーに生成されます。追加情報
詳しくは、「Apache OpenJPA ユーザー・ガイド」のパーシスタンス・クラスのアプリケーション識別ツールの情報を参照してください。