のはぁ
http://www.sun.com/aboutsun/pr/2008-01/sunflash.20080116.1.xml
DBFlute -- 0.6.0 その1 {3階層}
JibunCB cb = new JibunCB();
cb.setupSelect_Oya().withOjiichan().withHiioZichan();※S2Dao-1.0.47限定
追記: 0.6.4よりsetupSelectの階層制限がなくなりました。(無限階層に!)
DBFlute -- 0.6.0 その2 {DisplaySql}
MemberCB cb = new MemberCB();
cb.setupSelect_MemberStatus();
cb.query().setMemberAccount_LikeSearch("S", new LikeSearchOption().likePrefix().escapeByPipeLine());
cb.query().addOrderBy_MemberId_Desc();
System.out.println(cb.toDisplaySql());// ★↓
select ... from MEMBER left outer join MEMBER_STATUS on ...
where MEMBER_ACCOUNT like 'S%' escape by '|'
order by MEMBER_ID desc;DEBUGログで出力されているものと同じSQL文字列
DBFlute -- 0.6.0 その4 {スピード}
ConditionBeanのSelect句の解析や検索結果マッピング部分において、
パフォーマンスを改善しました。
今までSelect句だけはS2Daoに任せていたのですが、
それも自前でやることにより、より最適な処理が実現できました。
マッピングも一部オーバーライドして自前の最適処理を入れました。具体的には:
1. Select句のIFコメント処理コストがなくなった
2. マッピング時に、setupSelectされたものだけを走査
3. マッピング時に、リフレクションを(極力)使わない画面アプリではあまり実感ないと思われますが、
夜間バッチでの大量処理などにおいて効果を発揮します。また、Seasarの機能である「SqlLogRegistry」を
DBFluteを利用する際においてデフォルトでOFFにしました。
現状デフォルトでは設定ONです。
かつ、本番運用時も動作するようになっているようなのですが、
利用しない人にとってはこれはパフォーマンス劣化の1要因です。
https://ml.seasar.org/archives/seasar-user/2007-August/010133.html利用しない人の方が割合としては圧倒的に多いので、
「SqlLogRegistry」を利用したい人は自分で設定をONにするようにします。※DBFluteBasicExampleにて明示的に設定をONにする実装例があります。
https://www.seasar.org/svn/sandbox/dbflute/trunk/dbflute-basic-example
→ SqlLogRegistryTest