[Seasar-user:5997] Re: Re :[DBFlute] 外だし SQL のPAGINGについて
kubo
[E-MAIL ADDRESS DELETED]
2007年 2月 1日 (木) 22:27:36 JST
久保です。
> ご指摘ありがとうございます。
> 外だしSQL内にPaging検索用の条件を記述するということですね。
> 通常の外だしSQLを記述していました。。それが原因のようですね。
>
> ORACLEにおける外だしSQLPagingの方法がありましたら、ご教授よろしく
> お願い致します。
取り急ぎ、Oracleの例を更新しました。
http://dbflute.sandbox.seasar.org/ja/tips-paging.html
ex) PagingのSQL{Oracleの場合}
/- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
select *
from (select BOOK_ID, BOOK_NAME, ...
from BOOK
where ...(色々複雑な条件...)
) book
where rownum > /*$pb.pageStartIndex*/80
and rownum <= /*$pb.pageEndIndex*/100
- - - - - -/
別に上記のような書き方ではなく、between構文を使ったりとかは自由です。
PagingBeanが提供するのは「計算されたPagingのためのIndexやSize」
です。極論、外だしSQLの場合はそれをどのように利用しても構わないのです。
やろうと思えばResultSetの弾きだけで、DBに関係なく
Pagingは可能なのですが、DB自体(SQL)に絞込みの機能がある
場合が、そちらを必ず利用するような方針を採っています。
ちょっと面倒かと思われるかもしれませんが、
Performanceを考えた場合、これが最良だと考えた次第であります。
> /*BEGIN*/where
> /*IF pmb.findGyotai != null*/substr(KAISYACD, 5, 1) = /*pmb.findGyotai*/'1'/*END*/
ああ、確かに関数を条件利用するとなると外だしSQLとなりますね。。。
(ConditionBeanは関数はサポートしていないため)
--
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
kubo <[E-MAIL ADDRESS DELETED]>
jflute <http://d.hatena.ne.jp/jflute>
株式会社ビルドシステム <http://www.buildsystem.co.jp>
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
Seasar-user メーリングリストの案内