[Seasar-user:13181] Re: 【DBFlute】unionを使用したPaging
kubo
[E-MAIL ADDRESS DELETED]
2008年 3月 7日 (金) 17:51:20 JST
久保です。
森さん、こんにちは
こちら現象再現いたしました。
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 メーリングリストの案内