一つ目は入力ファイルとして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の恩恵を受けることができます。