[Seasar-user:13184] Re: 【DBFlute】unionを使用したPaging

森和紀 [E-MAIL ADDRESS DELETED]
2008年 3月 7日 (金) 18:20:04 JST


久保さん

お世話になっております。森です。

迅速な対応ありがとうございます。
DBFlute-0.6.6(SNAPSHOT)を確認してみます。
しばしお待ちください。

以上です。

08/03/07 に kubo<[E-MAIL ADDRESS DELETED]> さんは書きました:
> 久保です。
>
> 森さん、こんにちは
>
> こちら現象再現いたしました。
> https://www.seasar.org/issues/browse/DBFLUTE-216
>
> DBFluteOracleExampleにて、修正したDBFluteで動作確認いたしました。
> https://www.seasar.org/svn/sandbox/dbflute/trunk/dbflute-oracle-example
>
> MemberCBTestのtest_selectPage_union_existsSubQuery_Tx()メソッドです。
>
> もしよければ、このDBFluteOracleExampleのDBFlute-0.6.6(SNAPSHOT)を
> 使ってご確認頂けませんでしょうか?
> (昨日のスキーマ付きSQLの修正も含まれております)
>
>
> 2008/3/7 森和紀 <[E-MAIL ADDRESS DELETED]>:
> > お世話になっております。
> >  森と申します。
> >
> >  union を使用した Paging(selectPage)を行なうと、union のSQLにもPaging用のSQLが
> >  重複してしまい、エラーとなります。
> >  Paging なしの場合(selectList)は問題ありません。
> >
> >  Version:DBFlute 0.6.4
> >
> >  union の使い方に問題があるのでしょうか?
> >  ご確認いただければと思います。
> >
> >  Java の実装
> >  -----------------------------------------------------------
> >  MessageTextCB cb = new MessageTextCB();
> >  cb.query().setTextId_Equal("1");
> >  TcMessageTextCB ucb = new TcMessageTextCB();
> >  ucb.query().setTextId_Equal("2");
> >
> >  cb.fetchFirst(5);
> >  cb.fetchPage(1);
> >
> >  cb.union(ucb.query());
> >
> >  messageTextBhv.selectPage(cb);
> >
> >  発行されたSQL
> >  -----------------------------------------------------------
> >  select
> >     *
> >  from
> >     (
> >         select
> >             base.*,
> >             rownum as rn
> >         from
> >             (
> >                 select
> >                     dflocal.TEXT_ID as TEXT_ID,
> >                     dflocal.MESSAGE_ID as MESSAGE_ID
> >                 from
> >                     MESSAGE_TEXT
> >                     dflocal
> >                 where
> >                         dflocal.TEXT_ID = ?
> >                 union
> >                 select
> >                     *
> >                 from
> >                     (
> >                         select
> >                             base.*,
> >                             rownum as rn
> >                         from
> >                             (
> >                                 select
> >                                     dflocal.TEXT_ID as TEXT_ID,
> >                                     dflocal.MESSAGE_ID as MESSAGE_ID
> >                                 from
> >                                     MESSAGE_TEXT
> >                                     dflocal
> >                                 where
> >                                         dflocal.TEXT_ID = ?
> >                             )
> >                             base
> >                     )
> >                 where
> >                         rn > 0
> >                     and rn <= 5
> >
> >
> >  以上、よろしくお願いいたします。
> >  _______________________________________________
> >  Seasar-user mailing list
> >  [E-MAIL ADDRESS DELETED]
> >  https://ml.seasar.org/mailman/listinfo/seasar-user
> >
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>


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