[Seasar-user:9738] [S2Pager]拡張PagerCondition使用時にSQLException
koichi
[E-MAIL ADDRESS DELETED]
2007年 8月 7日 (火) 14:16:41 JST
koichiです。
お世話になっております。
S2-2.4.16
S2Dao-1.0.45(S2Pager)
Oracle10g
上記の環境で早速PagerResultSetFactoryRownumWrapperを使用させてもらっているのですが
SQLExceptionが発生してしまいます。
実装としては
PagerConditionをimplementsしている検索条件クラスに追加でプロパティを持たせた上
Daoのselectメソッドに引数で渡しています。
@SqlFile
@Arguments("condition")
public List<CompanyBean> selectByPagerCondition(CompanyPagerCondition condition);
これで PagerConditionの条件のみ有効の場合は問題ないのですが、
conditionに定義している、例えば企業名などの条件も有効になると
カウントを取るSQL実行の時点でSQLException: INまたはOUTパラメータがありません が発生します。
デバッグしてみますと
org.seasar.dao.pager.AbstractPagerResultSetFactory#getCount(PreparedStatement ps, String baseSQL)の
L183 psCount = ps.getConnection().prepareStatement(countSQL);
にて、psにはパラメータ情報があるのですが、
psCount内にパラメータが含まれていない?ようでした。
PreparedStatementの内容にくわしくないのでよくわからないのですが
上記の記述でパラメータ情報がコピーされるのでしょうか
baseSQLの方は、SqlLog#getRawSql() の未加工のSQLが渡ってくるということなので
たぶんpsCount内にパラメータ情報が入っていないのが原因だろうと思っているのですが・・・
ご意見をお聞かせ下さい。
よろしくお願いします。
_________________________________________________________________
ダウンロード無料!マイクロソフトの最新ブラウザMSN版を今すぐ体験
http://promotion.msn.co.jp/ie7/
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: http://ml.seasar.org/archives/seasar-user/attachments/20070807/0a42f0e5/attachment.html
Seasar-user メーリングリストの案内