[Seasar-user:9755] Re: [S2Pager]PostgreSQL8.2.4 で PagerResultSetFactoryLimitOffsetWrapper を利用

Jundo Ishikawa [E-MAIL ADDRESS DELETED]
2007年 8月 7日 (火) 23:54:52 JST


JUNDUです。

 お世話になっております。本件、一応他のメールの返信でも書かれていますが、
S2Daoの1.0.45での不具合です。大変申し訳ございませんが、今の時点では1.0.44
を使って試してみていただけますでしょうか。

 1.0.44は、以下のリンクからダウンロード可能です。

http://s2dao.seasar.org/ja/download.html

 ご迷惑をおかけ致しますが、よろしくお願い申し上げます。


07/08/07 に Nishioka Naoto<[E-MAIL ADDRESS DELETED]> さんは書きました:
> にしおかです。
>
> PostgreSQL8.2.4(JDBCドライバはpostgresql-8.2-505.jdbc4.jarを利用)を利用し
> ている環境で、
> PagerResultSetFactoryLimitOffsetWrapperを使用しようとした場合の質問です。
>
> http://s2dao.seasar.org/ja/s2pager.html を参照し、jdbc.diconを文末のように記
> 述しました。
> DefaultPagerConditionクラスを継承した独自Conditionを使用し、
> そこにパラメータをセットしてS2Dao経由でデータを取得しようとしたところ、
>
> [ESSR0072]SQLで例外(SQL=[], Message=[No value specified for parameter 1.],
>  ErrorCode=0, SQLState=22023)が発生しました
>
> といった例外が発生してしまいました。
>
> AbstractPagerResultSetFactory#createResultSet(PreparedStatement)に
> ブレークポイントをはってデバッガーで追ってみたところ、
> レコード件数を取得する処理(getCount(PreparedStatement, String))のところで、
> パラメータをセットすることなく件数取得用のPreparedStatementを実行していること
>> 原因ではないかと思われるのですが、
> そもそも、使い方が間違っていたり(本来、その部分にはパラメータ付きの
> SQLはこないとか?)するのでしょうか?
>
> なお、S2Daoにおいては、@Queryアノテーションで検索条件を指定しています。
> PagerResultSetFactoryWrapper を使用している場合は、問題なく動作します。
>
> @Query("hogetable.hoge=/*hogePagerCondition.hoge*/")
> public Hoge[] getHogeByHogeCondition(HogePagerCondition hogePagerCondition);
>
> ※Hogeは、内部で別のテーブルのデータを保持しており、
> 自動生成されるSQLにおいてはLEFT OUTER JOINが使用されております。
>
> 以上、よろしくお願いいたします。
>
> (以下、jdbc.diconの内容)
>
> <include path="jta.dicon"/>
> <include path="jdbc-extension.dicon"/>
> <component
>  name="resultSetFactory"
>  class="org.seasar.dao.pager.PagerResultSetFactoryLimitOffsetWrapper">
>   <arg>
>     <component class="org.seasar.extension.jdbc.impl.BasicResultSetFactory"/>
>   </arg>
>   <arg>dataSource</arg>
> </component>
> <component class="org.seasar.extension.jdbc.impl.ConfigurableStatementFactory"
> >
>   <arg>
>     <component class="org.seasar.dao.pager.PagerStatementFactory"/>
>   </arg>
>   <property name="fetchSize">100</property>
>   <!--
>   <property name="maxRows">100</property>
>   -->
> </component>
> <component name="xaDataSource"
>  class="org.seasar.extension.dbcp.impl.XADataSourceImpl">
>   <property name="driverClassName">
>     "org.postgresql.Driver"
>   </property>
>   <property name="URL">
>     "jdbc:postgresql://localhost:5432/sampledata?protocolVersion=2"
>   </property>
>   <property name="user">"username"</property>
>   <property name="password">"password"</property>
> </component>
> <component name="connectionPool"
>  class="org.seasar.extension.dbcp.impl.ConnectionPoolImpl">
>   <property name="timeout">600</property>
>   <property name="maxPoolSize">50</property>
>   <property name="allowLocalTx">true</property>
>   <destroyMethod name="close"/>
> </component>
>
> <component name="dataSource"
>  class="org.seasar.extension.dbcp.impl.DataSourceImpl"
>  />
>
> ※このメールを書いている最中に、
> [Seasar-user:9738] [S2Pager]拡張PagerCondition使用時にSQLException
> でほぼ同じ内容(使用しているDBとWrapperが異なりますが)が挙がっていますね・
> ・・。
>
> ------------------------------
> Nishioka Naoto
>
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>


-- 
 Jundo Ishikawa <[E-MAIL ADDRESS DELETED]>
         ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄


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