wsmapping コマンド
エンティティー・オブジェクト・モデルをデータベース関係モデルにトップダウン方式でマッピングする場合は、wsmapping ツールを使用します。 wsmapping ツールを使用すると、データベース表を作成することができます。
構文
コマンド構文は次のようになります。
![[AIX]](../images/aixlogo.gif)
![[HP-UX]](../images/hpux.gif)
![[Linux]](../images/linux.gif)
![[Solaris]](../images/solaris.gif)
![[z/OS]](../images/ngzos.gif)
wsmapping.sh [options][arguments]
![[IBM i]](../images/iseries.gif)
wsmapping [options][arguments]
![[Windows]](../images/windows.gif)
wsmapping.bat [options][arguments]
パラメーター
- -schemaAction/-sa <add | refresh
| drop | build | reflect | retain | createDB | import | export | none>: スキーマに対して実行するアクションです。
これらのオプションは、スキーマ・ツールのアクションに対応します。 何も指定しない場合、デフォルト・アクションは add です。 コンマ区切りリストに複数のアクションを指定することができます。
注: wsmapping ツールでは -action/-a フラグを使用して、個別クラスごとに実行するアクションを指定することができます。 すべてのパーシスタント・タイプに一度に wsmapping を実行しないかぎり、デフォルトの add アクションまたは build アクションを使用する必要があります。これらを指定しない場合、現在ツールの実行対象となっていないクラスで使用されるスキーマ・コンポーネントが、誤って削除されることがあります。 - -schemaFile/-sf <true/t | false/f>: このオプションを使用すると、データベースを修正しないで、計画されたスキーマを XML 文書に書き込むことができます。
この後、スキーマ・ツールによって XML 文書は変更され、処理されて、データベースにコミットされます。
- -sqlFile/-sql <stdout | output file>: このオプションを使用すると、データベースを変更しないで、計画されたスキーマの変更を SQL スクリプトに書き込むことができます。
現行マッピングの・スキーマが存在する場合でも、このパラメーターと build の schemaAction を組み合わせて、そのスキーマを再作成するスクリプトを生成してください。
- -dropTables/-dt <true/t | false/f>:
このオプションが true に設定されている場合、retain および refresh アクション中に使用されないテーブルは、スキーマによって削除されます。
デフォルトは true です。
- -dropSequences/-dsq <true/t | false/f>:
このオプションが true に設定されている場合、retain および refresh アクション中に使用されないシーケンスは、スキーマによって削除されます。
デフォルトは true です。
- -openjpatables/-ot <true/t | false/f>: スキーマを反映している間に、このパラメーターは OPENJPA_ で名前が開始するテーブルまたはシーケンスに反映させるかどうかを判別します。
特定の OpenJPA コンポーネントでは、テーブル・スキーマ・ファクトリーなどの、これらのテーブルやシーケンスが使用されます。 その他のアクションを使用している場合は、openjpaTables パラメーターによって、これらのテーブルをドロップできるかどうかが制御されます。 デフォルト設定は false です。
- -ignoreErrors/-i <true/t | false/f>:
false に設定している場合に、ツールでデータベース・エラーが検出されると、例外が発生します。
デフォルトでは、false に設定されます。
- -schemas/-s <schema list>: wsschema ツールを実行している場合に OpenJPA がアクセスする必要があるスキーマおよびテーブルの名前のリストを示します。
これは、openjpa.jdbc.Schemas プロパティーを一度実行するように設定する操作と同等です。 このパラメーターは、wsschema ツールの -schemas/-s パラメーターに対応します。-readSchema/-rs が true に設定されていない場合、このオプションは無視されます。
- -readSchema/-rs <true/t | false/f>: マッピング・ツールの実行中に既存スキーマ全体を読み取る場合は、このオプションを true に設定します。
既存スキーマを読み取るようにすると、OpenJPA は既存の名前と矛盾するテーブル、索引、1 次キーまたは外部キー名を使用するマッピングを生成しなくなります。
注: JDBC ドライバーによっては、-readSchema/-rs 機能を選択すると大規模スキーマのプロセス速度が低下することがあります。 - -primaryKeys/-pk <true/t | false/f>: このフラグは、既存テーブルで 1 次キーを操作できるかどうかを判別します。
デフォルトは true です。
- -foreignKeys/fk <true/t | false/f>: このフラグは、既存テーブルで外部キーを操作できるかどうかを判別します。
デフォルトは true です。つまり、既にマッピングされているクラスに新しい外部キーを追加するには、このパラメーター・フラグを明示的に true に設定する必要があります。
- -indexes/-ix <true/t | false/f>: このフラグは、既存テーブルで索引を操作できるかどうかを判別します。
デフォルトは true です。つまり、既にマッピングされているクラスに新しい索引を追加するには、このパラメーター・フラグを明示的に true に設定する必要があります。
- -sequences/-sq <true/t | false/f>: このフラグは、シーケンスを操作できるかどうかを判別します。
デフォルトは true です。
- -meta/-m <true/t | false/f>: このフラグでは、マッピングを標準マッピングではなくメタデータに適用するかどうか、または標準マッピングのほかにメタデータにも適用するかどうかを指定します。
- wsmapping ツールでは -action/-a フラグを使用して、クラスごとに実行するアクションを指定することができます。
コンマ区切りリストに複数のアクションを指定することができます。
使用可能なアクションは次のとおりです。
- buildSchema: デフォルト・アクションです。buildSchema アクションはデータベース・スキーマを既存マッピングにマッチングさせます。 指定したマッピングがクラス定義と矛盾する場合、OpenJPA は失敗し、通知用例外が発生します。
- validate: 指定したクラスのマッピングが有効であって、データベースのスキーマと一致していることを確認します。 このアクションを実行しても、テーブルのマッピングは変更されません。 無効なマッピングがある場合は、例外が発生します。
- パーシスタント・クラスのフルネーム
- パーシスタント・クラスの .java 名
- パーシスタント・クラスの .class ファイル
wsmapping ツールに引数を指定しない場合は、パーシスタント・クラス・リスト内のクラスに対して実行されます。
使用法
wsmapping ツールを実行する前に、URL、ユーザー、パスワードなどのデータ・ソース情報を構成する必要があります。 バイトコードをエンティティー・クラスに挿入する wsmapping ツールの前に、wsenhancer ツールを実行する必要があります。 また、エンティティーのコンパイル済みクラス・ファイルをクラスパスに配置する必要があります。エンティティー・クラス・ファイルが、例えば次のように target/classes にあると想定します。
![[AIX]](../images/aixlogo.gif)
![[HP-UX]](../images/hpux.gif)
![[Linux]](../images/linux.gif)
![[AIX HP-UX Solaris]](../images/unix.gif)
![[Solaris]](../images/solaris.gif)
![[z/OS]](../images/ngzos.gif)
export CLASSPATH=${CLASSPATH}:target/classes
wsmapping.sh ...
![[IBM i]](../images/iseries.gif)
export CLASSPATH=${CLASSPATH}:target/classes
wsmapping ...
![[Windows]](../images/windows.gif)
SET CLASSPATH=%CLASSPATH%;target¥classes
wsmapping.bat . . .
テーブルを作成するには、${profile_root}/bin ディレクトリーから wsmapping コマンドを実行します。このコマンドが完了すると、データベース表が作成または更新されます。 メッセージおよびエラーは、ログ設定で指定された管理コンソールに記録されます。
wsmapping.sh . . . Windows の場合:
例
Magazine.java ファイルに必要なデータベース・テーブルを作成するには、以下のコマンドを実行します。
![[AIX]](../images/aixlogo.gif)
![[HP-UX]](../images/hpux.gif)
![[Linux]](../images/linux.gif)
![[Solaris]](../images/solaris.gif)
![[z/OS]](../images/ngzos.gif)
${profile_root}/bin/wsmapping.sh Magazine.java
![[IBM i]](../images/iseries.gif)
${profile_root}/bin/wsmapping Magazine.java
![[Windows]](../images/windows.gif)
${profile_root}¥bin¥wsmapping.sh Magazine.java
Magazine.java のテーブルを削除するには、以下のコマンドを実行します。
![[AIX]](../images/aixlogo.gif)
![[HP-UX]](../images/hpux.gif)
![[Linux]](../images/linux.gif)
![[Solaris]](../images/solaris.gif)
![[z/OS]](../images/ngzos.gif)
C:¥> %profile_root%/bin/wsmapping.sh -sa dropDB Magazine.java
![[IBM i]](../images/iseries.gif)
C:¥> %profile_root%/bin/wsmapping -sa dropDB Magazine.java
![[Windows]](../images/windows.gif)
C:¥> %profile_root%¥bin¥wsmapping.bat -sa dropDB Magazine.java
クラスパスのすべてのクラスのマッピングを検証するには、以下のコマンドを実行します。
![[AIX]](../images/aixlogo.gif)
![[HP-UX]](../images/hpux.gif)
![[Linux]](../images/linux.gif)
![[Solaris]](../images/solaris.gif)
![[z/OS]](../images/ngzos.gif)
C:¥> %profile_root%/bin/wsmapping.sh -a validate
![[IBM i]](../images/iseries.gif)
C:¥> %profile_root%/bin/wsmapping -a validate
![[Windows]](../images/windows.gif)
C:¥> %profile_root%¥bin¥wsmapping.bat -a validate
追加情報
詳細および例については、「Apache OpenJPA ユーザーズ・ガイド」のロギングのマッピングの情報を参照してください。