JPA 2.1 Schema Generator の構成

OpenJPA を基盤に構築された jpa-2.0 フィーチャーでは、SchemaMapper ツールを使用することによって、データ定義言語 (DDL) を生成することも、データベースと直接対話して、 JPA エンティティー定義に基づいた表スキーマを定義することもできます。EclipseLink を基盤に構築された jpa-2.1 フィーチャーでは、 JPA 2.1 仕様に追加された新しい Schema Generator フィーチャーを使用できます。このフィーチャーは、OpenJPA SchemaMapper に似た機能を備えています。

このタスクについて

OpenJPA SchemaMapper と同様の機能が必要な場合、JPA 2.1 仕様にある Schema Generator フィーチャーを構成できます。

手順

  1. persistence.xml ファイル内のパーシスタンス・ユニット定義に、データベース・アクション・プロパティーを指定します。 指定できる値は、nonecreatedropdrop-and-create です。 それぞれの値は、データベースに対して実行されるアクションに対応します。以下の例では、 パーシスタンス・ユニットに指定されたエンティティーに対応する表がドロップされ、その場所に新しい表が作成されます。
    <persistence-unit name="pu">
            		<properties>
                <property name="javax.persistence.schema-generation.database.action"
            value="drop-and-create" />
    ...
            </properties>
    </persistence-unit>
  2. スクリプト・アクション・プロパティーを指定します。指定できる値は、nonecreatedropdrop-and-create です。 none 以外の値を指定する場合は、ターゲット・プロパティーも指定する必要があります。これは、 スクリプト・アクションが create (エンティティー定義に対して create ステートメントを生成する) の場合は、 対応する作成ターゲット・プロパティーを指定して、ステートメントが書き込まれるターゲット・ファイルを指定する必要があることを意味します。
    <persistence-unit name="pu">
            		<properties>
                <property name="javax.persistence.schema-generation.scripts.action"
          value="drop-and-create" />
                <property name="javax.persistence.schema-generation.scripts.create-target"
            value="createTargetFile.ddl"/>
                <property name="javax.persistence.schema-generation.scripts.drop-target"
          value="sampleDrop.ddl"/>
    ...
            </properties>
    </persistence-unit>

トピックのタイプを示すアイコン タスク・トピック

ファイル名: twlp_config_jpa21_schemgen.html