[Seasar-user:12197] Re: [DBFlute]OutsideSql.autoPaging について

kubo [E-MAIL ADDRESS DELETED]
2007年 12月 19日 (水) 15:09:11 JST


久保です。

渋谷さんへ

質問の内容とは別件ですが、

> 【外出しSQL】
> 
>     --#OfficeUserBean#
>     --*USER_ID, OFFICE_ID*
> 
>     --!OfficeUserPmb extends SPB!
>     --!!String userId!!
>     --!!String userName!!
>     --!!String officeId!!
>     --!!String officeName!!
>     SELECT
>     /*IF pmb.isPaging()*/
>         U.USER_ID
>         , U.USER_NAME
>         , O.OFFICE_ID
>         , O.OFFICE_NAME
>     -- ELSE count(*)
>     /*END*/
>     FROM
>         USER_MSTR       U
>         , OFFICE_MSTR   O
>     WHERE
>         U.BELONG_ID = O.OFFICE_ID
>         /*IF pmb.userId != null*/       AND U.USER_ID LIKE '%' ||
> /*pmb.userId*/'U' || '%'    /*END*/
>         /*IF pmb.userName != null*/     AND U.USER_NAME LIKE '%' ||
> /*pmb.userName*/'U' || '%'  /*END*/
>         /*IF pmb.officeId != null*/     AND O.OFFICE_ID LIKE '%' ||
> /*pmb.officeId*/'O' || '%'  /*END*/
>         /*IF pmb.officeName != null*/   AND O.OFFICE_NAME LIKE '%' ||
> /*pmb.officeName*/'O' || '%'/*END*/
>     ORDER BY
>         U.USER_ID
>         , O.OFFICE_ID
>     ;

細かい話ではありますが、アドバイスです。
上記SQLですが、ORDER BY句も/*IF pmb.isPaging()*/で囲うと
select count(*)時のパフォーマンスが(少し)向上します。

     /*IF pmb.isPaging()*/
     ORDER BY
         U.USER_ID
         , O.OFFICE_ID
     ;
     /*END*/

ドキュメントが追いついてなく大変申し訳ないのです。
http://d.hatena.ne.jp/jflute/20071219/1198041971
にて取り急ぎの利用方法を記載しましたので、
もしよければご覧になられて下さい。



Seasar-user メーリングリストの案内