区分値定義をすると「allcommon.CDef」というクラスが生成されます。 ここにはインナークラスでEnumが定義されています。 DBFluteの区分値機能はもともとメソッドで設定する方式を 採っていますので、実はEnumかStringかどうかはあまり 意識する必要はありません。
// 正式会員を設定 member.classifyMemberStatusFormalized(); // 正式会員だったら if (member.isMemberStatusFormalized()) { ... } // 条件:正式会員であること cb.query().setMemberStatusCode_Equal_Formalized();
しかし、区分値を使いたいのは、Entityだけではありません。 Entityとデータのやり取りをする画面用Dtoを転送用Dtoなども 区分値を利用したいです。そこでEnum定義の「CDef」です。 ClassificationDefinitionは今まで通り残ります。 これはこれで便利な内部API用の区分値定義として利用しています。 # # しかしながら、JavaのEnumはちょっと使いづらいですね... # 便利にするためにはもっとリッチに実装する必要がありそうです。 #