ConditionBeanでWhere句の有無判定メソッド

@DBFlute-0.9.5.2, DBFlute.NET-0.8.9.2
> (DBFLUTE-516){Java/C#}:
> ConditionBeanでWhere句の有無判定メソッド
「ConditionBeanがWhere句を持っているかどうか」を
判定できるようにしました。
MemberCB cb = new MemberCB();
boolean hasWhereClause = cb.hasWhereClause();
InlineビューのWhere句は判断に含まれません。
ソート情報の有無はcb.hasOrderByClause()を使います。
何がうれしいかと言うと、

例えばテスト環境の時点でテーブルに1000万件のレコードが入ってて、
単体テストでも結合テストなどで、ちょっとしたバグでWhere句なしの
SQLを発行してしまったら全然帰ってこなくて、デバッグに時間が掛かる、
別の人の作業を止めてしまう、という状況があるとします。

「このテーブルに対してWhere句なし検索はアプリコードでも
 テストコードでもありえない(やっちゃいけない)」
ということが分かりきっているのであれば、
ExtendedのBehaviorでselectList(cb)をオーバーライドして、
指定されたCBが「Where句がなかったら例外」にするなどして、
DBに負荷もかけず、バグを瞬時に例外として検知できるように
することが可能です。

単体テストの環境で1000万件のレコードは想像しにくいですが、
パフォーマンスもテストしたいということで、結合テストなど
で1000万件のレコードはありえると思います。
そのとき、万が一そういうバグがあった場合に、テスターも
非常に迷惑しますので、事前にチェックを掛けておくということです。
滅多に使わないとは思われますが、大人数での大規模開発で、
かつ、大容量のレコードを取り扱うアプリケーションの場合に
アーキテクトが「なんかちょっと心配だなぁ」と思ったときに、
「このテーブルに対してWhere句なし検索はアプリコードでも
 テストコードでもありえない(やっちゃいけない)」
に対してチェックを掛けてみるって感じですね。

一応、こういうことができるっていう感じで覚えておくと良いです。