外だしSQLの動的バインド変数検索
明示的にメソッドを指定することで、埋め込み変数コメント内にバインド変数コメントを埋め込むことが可能です。
実装方法
outsideSql()メソッドの後、「dynamicBinding()」メソッドを呼び出します。
この機能はメソッドを限定せずに、通常通り様々なメソッドが利用できます。
final List<SimpleMember> memberList = memberBhv.outsideSql().dynamicBinding().selectList(path, pmb, entityType);
memberBhv.outsideSql().dynamicBinding().cursorHandling().selectCursor(path, pmb, handler);
このように実装することで、埋め込み変数コメント内のバインド変数コメントがきっちり解析されるようになります。
主には不定数の条件(の文字列)をプログラム上で生成する場合に利用します。
外だしSQLは基本的に静的なため、そのような不定数の条件には実は弱いのです。
1つの開発プロジェクト内で1回使うか全く使わないかくらいの頻度かと思いますが、いざってときに役に立ちます。
バインド変数コメントを利用しなければこの機能を使わなくても不定数条件のSQLは実現できますが、
その場合はSQLインジェクション対策を自前で施さなければなりません。それはあまり現実的ではありません。
デメリットとしては、ほんのわずかだけパフォーマンスが落ちます。
それは、バインド変数コメントを動的解析しているからです。
通常は、バインド変数コメントはアプリケーションが起動してから一番最初のアクセス時に解析され、
その後は解析済みのキャッシュを利用します。
埋め込み変数コメント内のバインド変数コメントはその恩恵に与れません。
