Version v0.26 of the documentation is no longer actively maintained. The site that you are currently viewing is an archived snapshot. For up-to-date documentation, see the latest version.

Gradle Plugin

We are currently working on the translation from Japanese to English. We would appreciate your cooperation.

概要

Komapperが提供するGradleプラグインは、 データベースのメタデータから次の2種類のKotlinソースコードを生成します。

  • エンティティクラス
  • エンティティクラスのマッピング定義

エンティティクラスやマッピング定義については Entity Class を参照ください。

利用方法

プラグインの最新版はGradleプラグインのポータルのサイトで確認できます。

下記のコードはプラグインを利用したgradle.ktsファイルの例(抜粋)です。

// Komapperプラグインの利用を宣言する
plugins {
  id("org.komapper.gradle") version "0.25.0"
}

// Komapperプラグインに関する設定を行う
komapper {
    // Komapperプラグインの中でもコード生成に関するプラグインの利用を示す
    generators {
        // 利用するデータベースごとにregisterブロックに適当な名前をつけてブロック内に設定を記述する
        register("postgresql") {
            val initScript = file("src/main/resources/init_postgresql.sql")
            // databaseパラメータの設定
            database.set(
                // Testcontainers上のPostgreSQLを利用する
                JdbcDatabase.create(
                    url = "jdbc:tc:postgresql:13.3:///test?TC_INITSCRIPT=file:${initScript.absolutePath}",
                    user = "test",
                    password = "test"
                )
            )
            // packageNameパラメータの設定
            packageName.set("org.komapper.example.postgresql")
            // overwriteEntitiesパラメータの設定
            overwriteEntities.set(true)
            // overwriteDefinitionsパラメータの設定
            overwriteDefinitions.set(true)
        }
    }
}

上記の設定をした上で下記のコマンドを実行するとコードを生成できます。

$ ./gradlew komapperGenerator

registerに指定した名前を明示しても同じ結果が得られます。

$ ./gradlew komapperPostgresqlGenerator

Examples も参考にしてください。

パラメータ一覧

registerブロック内で設定可能なパラメータを示します。

database

接続先データベースを表します。

org.komapper.jdbc.JdbcDatabaseのインスタンスを設定してください。

設定必須です。

catalog

接続先データベースのカタログです。

設定は必須ではありません。

java.sql.DatabaseMetaData#getTablesメソッドの同名のパラメータに渡されます。

schemaPattern

接続先データベースの読み込み対象スキーマです。

SALES%のようにLIKE述語と同様の記述ができます。

設定は必須ではありません。

java.sql.DatabaseMetaData#getTablesメソッドの同名のパラメータに渡されます。

tableNamePattern

接続先データベースの読み込み対象テーブルです。

JOB%のようにLIKE述語と同様の記述ができます。

設定は必須ではありません。

java.sql.DatabaseMetaData#getTablesメソッドの同名のパラメータに渡されます。

tableTypes

接続先のテーブルのタイプです。

設定は必須ではありません。

デフォルトの値はTABLEのみを含んだListです。 Listは以下のような値を含むことができます。

  • TABLE
  • VIEW
  • SYSTEM TABLE
  • GLOBAL TEMPORARY
  • LOCAL TEMPORARY
  • ALIAS
  • SYNONYM

java.sql.DatabaseMetaData#getTablesメソッドの同名のパラメータに渡されます。

destinationDir

生成されるKotlinソースコードの出力先です。

エンティティクラスのソースコードはentities.kt、マッピング定義のソースコードはentityDefinitions.ktというファイル名で出力されます。

設定は必須ではありません。

デフォルトの値はsrc/main/kotlinです。

packageName

生成されるエンティティクラスやマッピング定義クラスのパッケージ名です。

設定は必須ではありません。

prefix

生成されるエンティティクラス名のプレフィックスです。

設定は必須ではありません。

デフォルトの値は空文字です。

suffix

生成されるエンティティクラス名のサフィックスです。

設定は必須ではありません。

デフォルトの値は空文字です。

overwriteEntities

生成されるエンティティクラスのソースコードを上書きするかどうかを表します。

設定は必須ではありません。

デフォルトの値はfalseです。

overwriteDefinitions

生成されるマッピング定義のソースコードを上書きするかどうかを表します。

設定は必須ではありません。

デフォルトの値はfalseです。

declareAsNullable

生成されるエンティティクラスの全プロパティをNULL許容型として宣言するかどうかを表します。

設定は必須ではありません。

デフォルトの値はfalseです。 この値がfalseの場合、 NULL許容型として宣言するかどうかはプロパティごとにデータベースのメタデータから判定します。

useCatalog

生成されるマッピング定義でカタログ名を明示するかどうかを表します。

設定は必須ではありません。

デフォルトの値はfalseです。

useSchema

生成されるマッピング定義でスキーマ名を明示するかどうかを表します。

設定は必須ではありません。

デフォルトの値はfalseです。

classResolver

生成されるエンティティクラスのプロパティの型を決定するリゾルバです。

org.komapper.codegen.ClassResolverのインスタンスを設定してください。

デフォルトはorg.komapper.codegen.DefaultClassResolverのインスタンスです。 このデフォルトの実装クラスは、接続先データベースのDialectに登録された情報を使って型を解決します。

リゾルバで型を解決できない場合、String型として生成されます。

Last modified January 10, 2022: Prepare English contents (f426de7)