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
}