[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 メーリングリストの案内