basicInfoMap

basicInfoMapとは?

自動生成する上で最も基本的なアプリケーション情報の設定を行うDBFluteプロパティ。DBFluteクライアントの dfprop 配下の basicInfoMap.dfprop という名前のテキストファイルです。必須のプロパティであり、ほとんどの項目は 自動生成する前に設定されること を前提としています。

プロパティ

map型プロパティ で、様々なkey-value形式のプロパティを定義します。

以下、(*)の付いたプロパティは必須です。

database (*)

データベースの種類。

値候補
mysql, postgresql, oracle, db2, mssql, h2, derby
補足
  • "mssql" はSQLServerのことを示す
  • SQLiteは "sqlite" と指定(但し、準サポート)
  • MS Accessは "msaccess" と指定(但し、準サポート)

targetLanguage (*)

自動生成するクラスの言語。

値候補
java, csharp

targetContainer (*)

DBFluteが利用するDIコンテナの種類。

値候補
seasar, spring, guice, lucy
補足
  • 基本的にアプリケーションで利用するDIコンテナと同じものを指定
  • DBFlute.NETでは "seasar" のみ有効

packageBase (*)

DBFluteが自動生成するクラスの基底となるパッケージ。

指定されたパッケージが実際に存在していなくても、ディレクトリの階層構造は自動で作成されます。

e.g. "com.example.dbflute" と指定した場合 @Package
com.example.dbflute
 |-allcommon
 |-bsbhv
 |-bsentity
 |-cbean
 |-exbhv
 |-exentity

習慣として、[アプリケーションのルートパッケージ].dbflute パッケージをお奨めします。但し、複数DB対応でアプリケーションのルートパッケージがDB間で同一の場合は、例えば [アプリケーションのルートパッケージ].dbflute.[クライアントプロジェクト名 or スキーマ名] というように明示的に分けると良いでしょう。

generateOutputDirectory

DBFluteが自動生成するクラスの出力先ディレクトリ。

値候補
DBFluteクライアントからの相対パス
デフォルト
../src/main/java
補足
  • DBFlute.NETではデフォルトは "../source"

resourceOutputDirectory

DBFluteが自動生成するリソース(DI設定ファイルなど)の出力先ディレクトリ。

値候補
"generateOutputDirectory" プロパティからの相対パス
デフォルト
../resources (../src/main/resources)

設定ファイル不要DIコンテナなど、環境によってはこのプロパティは利用されません。

isTableNameCamelCase

テーブル名の規約がキャメルケースか否か。例えば、テーブル名が "MemberStatus" なら true。テーブル名が "MEMBER_STATUS" もしくは "member_status" なら false。

値候補
true or false
デフォルト
false

isColumnNameCamelCase

カラム名の規約がキャメルケースか否か。例えば、カラム名が "MemberName" なら true。"MEMBER_NAME" もしくは "member_name" なら false。

値候補
true or false
デフォルト
false

projectPrefix

自動生成されるクラスのクラス名の prefix。

例えば "Ld" と指定した場合は "LdMember" というように全てのクラスに付与されます。但し、インナークラスはその限りではありません。 また、DI設定ファイル上のコンポーネント名にも付与 されますので(その場合、先頭文字は小文字になる)、コンポーネント名でDIするときは、この prefix を意識する必要があります。 (Seasarの場合、allcommonのコンポーネント名には prefix が付きません。Lasta Diでは付きます)

値候補
任意の文字列 (先頭が大文字であること)
デフォルト
なし (Prefixなし)
補足
  • 基本的には二文字から三文字くらいの文字列を想定

主に、プロジェクトで規約がある場合や複数DB対応時に役に立ちます。

allcommonPrefix

自動生成されるクラスの allcommon パッケージ配下のクラス名の prefix。

例えば "Ma" と指定した場合は "MaCDef" というように allcommon のクラスに付与されます。但し、インナークラスはその限りではありません。 また、DI設定ファイル上のコンポーネント名にも付与 されますので(その場合、先頭文字は小文字になる)、コンポーネント名でDIするときは、この prefix を意識する必要があります。 (Seasarの場合、コンポーネント名には prefix が付きません。Lasta Diでは付きます)

値候補
任意の文字列 (先頭が大文字であること)
デフォルト
なし (Prefixなし)
補足
  • 基本的には二文字から三文字くらいの文字列を想定

主に、複数DB対応時に役に立ちます。

classAuthor

自動生成されるクラスの "author" (@authorタグの文字列)。

主に、プロジェクトで規約がある場合に役に立ちます。

値候補
任意の文字列 (authorの値に適していること)
デフォルト
DBFlute(AutoGenerator)
補足
  • DBFlute.NETではこのプロパティは利用されない

再自動生成時の変更は Exクラス には反映されないので注意。その場合は手動(ツールでの一括置換など)で修正するようにして下さい。

sourceFileEncoding

自動生成されるソースファイルのエンコーディング。

値候補
エンコーディング名 (Javaで認識できるもの)
デフォルト
UTF-8

例えば、プロジェクトにおいてソースファイルを Shift_JIS で扱っている場合などに有効です。但し、DBFlute自身のテスト環境において全てのソースファイルは UTF-8 で取り扱っていることもあり、デフォルトのままがお奨めです。

sourceCodeLineSeparator @since 1.0.3

自動生成されるソースコードの改行コード。(LF or CRLF) @since 1.0.3

デフォルトでは、テンプレートの改行がそのまま残ります。基本的に LF (@since 1.0.4J) で統一されています。 また、DBFlute内部のプログラムで改行を含んだ文字列(JavaDocなど)を出力する場合もCRLFで出力します。

このプロパティで LF を指定すると、テンプレートの改行コードに関わらず出力されるもの全てが LF となります。出力時に、CRLF を LF に変換します。

また、CRLFを明示的に指定した場合は、テンプレートの改行に関わらず CRLF となります。デフォルトとほとんど出力結果は変わりませんが、テンプレートの改行コードが変換されたり、FreeGen などでテンプレートを自前で用意して改行コードをLFにしたりしても、CRLFに強制的に変換されます。

値候補
LF or CRLF
デフォルト
なし (テンプレートの改行そのまま、基本的にCRLF)

applicationBehaviorMap

アプリごとのBehavior、ApplicationBehavior の利用に関する設定を指定します。

この設定が有効なときは、DBFlute全体がアプリケーション対応のための動きをするようになります。 例えば、Generateタスクではアプリ対応のBehaviorを自動生成し、Sql2Entityタスクではアプリ対応のCustomizeEntityを自動生成します。 他のプロパティとの関連が複雑なため、厳密な設定を心がけるようにして下さい。(必ず概念を先に理解してから利用すること)

isApplicationBehaviorProject

ApplicationBehavior のためのプロジェクトであるかどうかを指定します。

このプロパティが true のときは、Generateタスクでは、アプリ対応の Behavior とそのためのDI設定ファイルのみが自動生成されます。また、そのときの自動生成されるクラスの設定は、 通常の自動生成で利用するのと同様に、他のDBFluteプロパティのプロパティ値が利用されます。 例えば、自動生成されるアプリ対応の Behavior のパッケージには、この isApplicationBehaviorProject が true のときに評価対象になっている basicInfoMap.dfprop の packageBase が適用されます。

値候補
true or false
デフォルト
false

libraryProjectPackageBase

ライブラリプロジェクト側の(DBFluteの自動生成クラスの)基底パッケージ(packageBase)を指定します。アプリ対応の Behavior の基底パッケージと違う場合にのみ設定をします。(同じパッケージで自動生成するなら設定は不要)

値候補
パッケージ
デフォルト
アプリのものと同じ
補足
  • アプリ側で作成する外だしSQLは、このパッケージのものに従うこと
  • packageBaseであることに注意 (behaviorのパッケージではない)
  • isApplicationBehaviorProjectが false のときはこのプロパティは利用されない
e.g. ApplicationBehaviorの有効化(パッケージを別にする場合) @basicInfoMap.dfprop
; applicationBehaviorMap = map:{
    ; isApplicationBehaviorProject = true
    ; libraryProjectPackageBase = com.example.dbflute.postgresql
}