@DBFlute-0.9.6.7, Java // Entityのsetで始まる区分値設定メソッド http://d.hatena.ne.jp/jflute/20100406/1270564473 に関連した流れですが、 区分値カラムのネイティブ型の設定メソッドをそもそも 利用禁止にしてしまうオプションが追加されました。 ネイティブ型の設定メソッドとは具体的には、 o entity.setMemberStatusCode("FML"); o cb.query().setMemberStatusCode_Equal("FML"); です。 利用禁止の実現方法ですが、設定メソッドの 可視性が protected になります。 (内部的に必要なため、削除するわけではない) 十分、ディベロッパーのハードコードを防げるかと思います。 littleAdjustmentMap.dfprop にて isForceClassificationSetting = true とすると、そのようになります。
注意点としては、必ずしもネイティブ型の設定メソッドが 不要とは限らない、ということです。 例えば、既に正しい区分値であることが保証されている リストボックスからリクエストパラメータとか、 TSVのデータのツール経由での取り込みとか、 時には、そのネイティブ型の変数をそのままネイティブ型の 設定メソッドに突っ込みたいこともあります。 そういう場合、この機能を利用していると、都度都度必ず CDef (ENUM)に変換して設定する必要があります。 CDef.MemberStatus cdef = CDef.MemberStatus.codeOf(xxx); entity.setMemberStatusCodeAsMemberStatus(cdef); なので、(外部から来るものも含めて)全てのコードを CDef(ENUM) で取り扱うようなシステムであれば良いですが、そうでない場合は、 逆にちょっと扱いづらい場面も出てくる可能性があります。
アーキテクトがローカル環境で一時的に有効にして再自動生成して、 ハードコードしてる箇所がないかチェックするっていうのに 使うのもアリかもしれません。
ちなみに、DB上に区分値定義に存在しないコードがあって、 それを検索した場合は、Entity上は null になります。 (ネイティブ型での設定はできないため) // 区分値定義に存在しないコードがDB上にあったら例外オプション http://d.hatena.ne.jp/jflute/20100407/1270644175 を利用することで、例外にすることは可能です。