BehaviorQueryPath

Sql2Entityで自動生成される BehaviorQueryPath についてのページです。

BehaviorQueryPathとは?

BehaviorQueryPath とは、外だしSQLの BehaviorQuery のパス表現のことを指します。

外だしSQLの使い方 - テーブル駆動でSQLを管理

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, ...);