target=gen-ddl(default)
これを使用して文字列に頼らず、タイプセーフなクエリを作成できる。
使用するNamesクラスをstatic importする。
これはXxxServiceでは、対応するXxxNamesがよい。
where句を構成するため、Operationsクラスもstatic importする。
結合したテーブルの情報を条件にしたいときはinnerJoin等でまず結合する。
関連が1対多で多側を参照するときはinnerJoin(viewGroupList())などとする。
(1側ならinnerJoin(dept())などになる。)
多側のIDで絞り込みたいなら以下のようにする。
.where(viewGroupList().id(), viewId))
ポイントはDeptNames内のviewGroupList()を使用するってことだろう。
以下作成したサンプル
import static org.seasar.extension.jdbc.operation.Operations.*;
import static sastrutsSample.entity.DeptNames.*;
import sastrutsSample.entity.Dept;
public class DeptService extends AbstractService {
public List findByViewId(String viewId) {
return jdbcManager.from(Dept.class).innerJoin(viewGroupList())
.where(eq(viewGroupList().id(), viewId))
.getResultList();
}
}
0 件のコメント:
コメントを投稿