[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-0001.html 


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