Allegro!

JavaやIT系小ネタ、趣味の話まで。

【DBflute】DBの変更に強いDBflute!特定のTBLだけ実行したい場合の方法!

皆さんおはようございます、管理人のPaZooです。

緊急事態宣言ももう少しで解除となりますが、気を引き締めたいところですね。

 

さて、話が逸れてしまいましたが今回は「DBfluteで指定したTBLに対して実行したい時の方法」を書き残そうと思います。

 

 DBfluteとは

DBへの接続をしてくれるORマッパーのフレームワークです。
このフレームワークの特徴として、「DBの変更に強いこと」が挙げられます。

DBのEntityを読み込み、対応するクラスとメソッドを自動生成してくれる優れもの!

DDLを修正することなくレコードの取得 や更新、追加、削除を行うことが可能です。

基本的な使い方は、公式ドキュメントが最&高で分かりやすいのでリンクを記載しておきます。

dbflute.seasar.org

特定のTBLに対して実行したい場合

DBfluteの基本的な動きについて先ほど説明させていただきました通り、デフォルトで全てのTBLに対して自動生成します。

そんな時に、ある特定のTBLに対してのみ実行したい場合など細かい設定を行いたい場合について手順をまとめてみました。

対象ファイル:databaseInfoMap

スキーマのメタ情報を取得する上での接続情報や細かい設定を行うDBfluteのプロパティです。

DBfluteクライアントのdfprop配下にある「databaseInfoMap.dfprop」という名前のテキストファイルが対象ファイルです。

必須プロパティとなっており、接続情報に関しては"自動生成実行前"に設定されることを前提としています。

ちなみにMap型のプロパティです。

自動生成対象のオブジェクトを記載するのは、「objectTypeTargetList」というリストを持つプロパティに記載してください。

TBLだけでなく、ViewもTBLと同じように扱うことが可能です。ちなみにこんな感じ。

; variousMap = map:{
    ; objectTypeTargetList = list:{TABLE ; VIEW ;}
}

また、自動生成対象から除外したい場合は「tableExceptList」に対象TBL名を記載してあげると除外されます。

tableExceptListでは正規表現を使うことができるので、非常に便利です。

基本的に大文字小文字の区別はなく、tableTargetList(自動生成対象リスト)に記載されている場合は、tableExceptListに記載しても無効となります。

 

DBfluteは特定のカラムを自動生成対象から除外すれば自動生成されなかったりと、プロパティ設定でかなり自由が効きますので知識として知っておくと開発が楽になりますよ!

まとまらないまとめ

DBflute is God!!!