[Seasar-user:16672] Re: 一つのAutoSelectオブジェクトから2回の結果を取得する方法
Yasuo Higa
[E-MAIL ADDRESS DELETED]
2009年 1月 14日 (水) 12:48:05 JST
ひがです。
> 縣です。
>
> 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 メーリングリストの案内