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

森和紀 [E-MAIL ADDRESS DELETED]
2008年 3月 7日 (金) 15:32:14 JST


お世話になっております。
森と申します。

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 メーリングリストの案内