見所

一つ目は入力ファイルとしてJiemamy(http://www.jiemamy.org)が出力するERダイアグラムファイルを指定可能になったことです。このことによってDBのスキーマ管理とDao/Entity管理を一元的に行うことができます。

もう一つは検索条件の細かい指定に使うConditionクラスです。S2Dao-CodeGenの以前のバージョンは検索条件の指定のためにFindDtoというクラスとSQLファイルを出力していたのですが、このクラスがパフォーマンス上問題となりやすい構造になっていました。今回、その構造を全面的に見直すとともに、genericsの持ち味を生かしたつくりになっています。

        EmpTableCondition dto = new EmpTableCondition();
        dto.selectEmpNo().more(7500);
        dto.selectHireDate().dateFrom(new Date(2000, 0, 1));
        List<EmpTable> result = dao.find(dto);

Order byの指定は、こんな感じになります。

        EmpTableRelationCondition conditon = new EmpTableRelationCondition();
        conditon.selectEmpNo().addOrderAsc();
        conditon.selectDeptNo().addOrderDesc();
        dao.find(conditon);

あと、S2Daoの機能として、「Daoの初期化時にDBのメタデータを使わない」という設定が可能なのですが、この設定を使用しています。このことにより、HotDeploy時にもパフォーマンスの低下が極力抑えられ、HotDeployの恩恵を受けることができます。