検索条件(Condition)クラス使用方法リファレンス
使用方法
conditionパッケージの検索条件クラスは、以下のように使用します。インスタンス生成
org.seasar.codegen.lib.Conditionインターフェースの実装クラスのデフォルトコンストラクタを呼び出して、インスタンスを生成します。
検索条件設定
プロパティに対応したselect「プロパティ名」を呼び出し、その後検索条件の値を指定するメソッドを呼び出します。
以下の例では、「エンティティEmpTableのプロパティempNpが7500より大きい」という検索条件を指定しています。
EmpTableCondition condition = new EmpTableCondition(); condition.selectEmpNo().more(7500);
指定できる検索条件は、 JavaDocを参照してください。
文字列と日時の検索条件については、追加で指定できる検索条件があります。( 文字列の場合/ 日時の場合)
並び替え
並び替えを指定するには、addOrderAscメソッドとaddOrderDescメソッドを使用します。
EmpTableRelationCondition conditon = new EmpTableRelationCondition(); conditon.selectEmpNo().addOrderAsc(); conditon.selectDeptNo().addOrderDesc();
関連の指定
関連をまとめて取得する場合は、RelationConditionを使用します。
以下の例では、「エンティティEmpTableの関連のDeptTalleのプロパティlocが"DALLAS"に等しい」という検索条件を指定します。
EmpTableRelationCondition condition = new EmpTableRelationCondition(); condition.selectDeptTableRelation().selectLoc().equal("DALLAS");
query
複雑なSQLを組み立てるときには、ConditionのaddQueryメソッドでSQLのqueryを指定します。
addQueryメソッドで指定した条件は、select「プロパティ名」で指定した条件の後ろにAND条件で付与されます。
EmpTableCondition empCondition = new EmpTableCondition(); empCondition.selectEmpNo().equal(100); empCondition.selectSal().not(new BigDecimal(200000)); empCondition.addQuery("ENAME = ?", "aaa");
ページング
ページングの指定はS2Pagerと同様です。ConditionインターフェースがS2Pagerのorg.seasar.dao.pager.PagerConditionを実装していますので、limitとoffsetを指定してください。
EmpTableCondition condition = new EmpTableCondition(); condition.setOffset(5); conditon.setLimit(5);
SQL実行
daoのConditionインターフェースの実装クラスを引数にとるメソッドにConditonを渡して、SQLを実行します。
関連をまとめて取得する場合は、findWithRelationメソッドまたはsoleMatchWithRelationメソッドを使用します。
List<EmpTable> result = dao.find(condition);