This is a cache of http://dbflute.seasar.org/ja/manual/function/ormapper/behavior/select/selectpage.html. It is a snapshot of the page at 2024-11-01T00:24:41.143+0000.
selectPage(cb) | DBFlute

selectPage(cb)

概要

基本概念

ConditionBean でページング検索 をします。

会話上では、せれくとぺーじ と表現します。

実装方法

実装の流れ 1.1.x (Java8版)

まずは、ConditionBean で paging() を呼び出し、ページサイズと検索対象のページ番号を設定します。 そして、Behaviorの selectPage() を呼び出し、その ConditionBean を指定します。

e.g. selectPage()の実装手順 (Eclipseでコード補完) {MEMBER} @Java
int currentPageNumber = 3; // 実業務では、画面などで指定されたページ番号など
memberBhv.selP // .selP と打って enter
--

// メソッドが補完されて、引数の "cbLambda" が選択状態に
memberBhv.selectPage(cbLambda);
--

// cbLambdaの部分で、_ll (補完テンプレートが有効なら)
memberBhv.selectPage(_ll);
--

// Lambda引数名はcbにして...
memberBhv.selectPage(cb -> {
    cb.query().set... // tabでカーソル移動してcbで検索条件
})
--

// paging()メソッドを呼び出す
memberBhv.selectPage(cb -> {
    cb.query().set... // tabでカーソル移動してcbで検索条件
    cb.paging(20, currentPageNumber); // 1 ページ 20 件で 3 ページ目を検索対象に
})
--

// セミコロン ';' を打って ctrl+2, L で戻り値補完
PagingResultBean<Member> memberPage = memberBhv.selectPage(cb -> {
    cb.query().set... // tabでカーソル移動してcbで検索条件
    cb.paging(20, currentPageNumber); // 1 ページ 20 件で 3 ページ目を検索対象に
});
--

// PagingResultBeanを使って、ページングナビゲーションをいい感じに
PagingResultBean<Member> memberPage = memberBhv.selectPage(cb -> {
    cb.query().set...
    cb.paging(20, currentPageNumber);
});
int allRecordCount = memberPage.getAllRecordCount();
int allPageCount = memberPage.getAllPageCount();
for (Member member : memberPage) { // java.util.Listなのでそのままループ
    ...
}
...

実装の流れ 1.0.x (Java6版)

e.g. selectPage()の実装手順 (Eclipseでコード補完) {MEMBER} @Java
int currentPageNumber = 3; // 実業務では、画面などで指定されたページ番号など
MemberCB() cb = new MemberCB();
cb.setupSelect_MemberStatus();
cb.query().addOrderBy_Birthdate_Desc();
cb.paging(20, currentPageNumber); // 1 ページ 20 件で 3 ページ目を検索対象に
memberBhv.selP // .selP と打って enter
--
// セミコロン ';' を打って ctrl(or command) + 2 そして L
memberBhv.selectPage(cb);
--
PagingResultBean<Member> memberPage = memberBhv.selectPage(cb);
int allRecordCount = memberPage.getAllRecordCount();
int allPageCount = memberPage.getAllPageCount();
for (Member member : memberPage) {
    ...
}
...

メソッド仕様

引数

該当のBehaviorに対応するテーブルの ConditionBean となります。(1.1.xよりコールバック)

ConditionBeanが必ず存在することが前提であるため、nullを指定した場合は例外発生します。 検索条件がない検索をする場合でも、必ずConditionBeanのインスタンスが必要です。

戻り値

該当のBehaviorに対応するテーブルの PagingResultBean となります。

検索結果が一件もない場合でも null にはならず、空のPagingResultBean(空のリスト)となります。

ページング条件未設定

ConditionBean の paging() でページング条件が設定されていないで呼び出されると例外となります。

オーバーライド

selectList() と同じような要領となります。