検索条件(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);