[Seasar-user:16674] Re: 一つのAutoSelectオブジェクトから2回の結果を取得する方法
AGATA Toshitaka
[E-MAIL ADDRESS DELETED]
2009年 1月 14日 (水) 20:33:01 JST
縣です。
> AutoSelectを使いまわすことはできません。
> AutoSelectを返すメソッドを用意して、
> それを複数回呼ぶのがお勧め。
回答ありがとうございます。
メソッド作成して複数回呼ぶ方式でいきたと思います。
Yasuo Higa さんは書きました:
> ひがです。
>
>> 縣です。
>>
>> S2JDBCでページングを行おうとしています。
>> 一つのAutoSelectオブジェクトからlimit/offsetを指定した検索結果と
>> countを取得する方法はありますか?
>>
>> 以下のようなコードでは正しいSQLが組み立てられずにエラーになりました。
>>
>> SimpleWhere where = new SimpleWhere()
>> .excludesWhitespace()
>> .eq("code", condition.getCode())
>> .like("name", condition.getName());
>>
>> AutoSelect<Employee> select =
>> jdbcManager
>> .from(Employee.class)
>> .where(where)
>> .orderBy("code");
>>
>> List<Employee> empList = select.getResultList();
>> int count = select.getCount(); // ここでエラーが発生
>>
>> AutoSelectを2回作成すれば問題ないのですが、
>> ページング時に定型的になるコードですので、
>> 1回で済むなら楽だなーと思った次第です。
>>
> AutoSelectを使いまわすことはできません。
> AutoSelectを返すメソッドを用意して、
> それを複数回呼ぶのがお勧め。
>
> public AutoSelect<Employee> xxx(Condition condition) {
> SimpleWhere where = new SimpleWhere()
> .excludesWhitespace()
> .eq("code", condition.getCode())
> .like("name", condition.getName());
>
> return
> jdbcManager
> .from(Employee.class)
> .where(where)
> .orderBy("code");
> }
>
> List<Employee> empList = xxx().getResultList();
> int count = xxx().getCount();
>
> 見たいな感じです。
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
Seasar-user メーリングリストの案内