BehaviorQueryPath
Sql2Entityで自動生成される BehaviorQueryPath についてのページです。
BehaviorQueryPathとは?
BehaviorQueryPath とは、外だしSQLの BehaviorQuery のパス表現のことを指します。
SQLファイルへのパスを解決は悩ましい問題です。プログラム上でのSQLの指定方法が文字列だと、"そんなファイルありません" エラーになることはよくあります。Sql2Entityは ある規約に則ったSQLファイル に限ってそのSQLのパス定義を Behaviorクラスに自動生成し、プログラム上で タイプセーフにどのSQLを実行するのかを指定 できるようにします。これにより先述のようなエラーが発生することはありません。Sql2Entityで作ったSQLのパス定義のことを BehaviorQueryPath と呼びます。
BehaviorQueryPath の自動生成
BehaviorQueryPath は TypedParameterBean 内部で管理され、通常は意識することはありません。 パスを明示指定するフリースタイル呼び出しの場合に自動生成された BehaviorQueryPath を意識します。
BehaviorQueryPathは、関連付いたBehaviorのBsクラス に Sql2Entityタスク および generateタスク(の最後の処理) によって定義されます。(既に存在しているBehaviorに対して定義が追加されます)
e.g. BehaviorQueryPathの定義(BsMemberBhv.java) @Java
public static final String PATH_selectSimpleMember = "selectSimpleMember";
public static final String PATH_selectMemberName = "selectMemberName";
BehaviorQueryPathの規約
BehaviorQueryPathの規約に沿った外だしSQLのみ自動生成されます。
- ソースディレクトリ
- Sql2Entityの対象となるディレクトリ
- パッケージ
- BehaviorのExクラスと同じパッケージ
- SQLファイル名
- [関連付けるBehaviorのクラス名]_[SQL名].sql
BehaviorQueryPathの利用
定義自体はBsクラスですが、利用するときはExクラス経由で利用するのが習慣です。
e.g. BehaviorQueryPathの定義(BsMemberBhv.java) @Java
String path = MemberBhv.PATH_selectSimpleMember;
... = memberBhv.outsideSql().selectList(path, ...);