[Seasar-user:15211] [S2Dao]Oracleのページング処理に失敗する
Shinobu Aoki
[E-MAIL ADDRESS DELETED]
2008年 7月 30日 (水) 11:25:48 JST
お世話になっております。
青木と申します。
プロジェクトで利用しているS2Daoを最新版にアップデートして、
OracleのROWNUMを使用するページングを利用してみた所、
特定のSQLでハングアップするケースがありましたので報告します。
用いたS2Daoのバージョンは1.0.48です。
【問題となるSQL例】
SELECT * FROM
(SELECT * FROM DEPARTMENT D
ORDER BY D.DNAME DESC, D.DEPTNO DESC)
いくつか試したところ、インラインビューを用いてなおかつ
インラインビューで用いるテーブルに別名をつけて、
ORDER BYで別名をつけて複数のカラムを指定すると
再現するようです。(DAOのメソッドにPagerConditionを渡した場合)
ソースを見てみると、org.seasar.dao.pager.AbstractPagingSqlRewriterの
chopOrderByメソッドで止まっていました。
ここで用いているORDER BYの正規表現に問題がありそうです。
ひとまずchopOrderByにfalseを指定するようにして回避しています。
なので急ぎではないのですが、ご確認頂けないでしょうか。
以上、宜しくお願い致します。
--
Shinobu Aoki <[E-MAIL ADDRESS DELETED]>
Seasar-user メーリングリストの案内