[Seasar-user:4406] Re: [S2Dao]pager使用時のSQLの不具合
安田 広大
[E-MAIL ADDRESS DELETED]
2006年 8月 23日 (水) 14:19:05 JST
安田です。
以前報告したpager使用時に埋め込み変数がシングルクォーテーションで囲まれない不具合の件ですが、原因が特定できましたので、報告します。
この問題は、PagerConditionを通して、s2daoまたはs2jdbcを利用し、かつSQLの検索条件として、文字列などシングルクォーテーションで囲む必要があるものを使用した場合に起こるようです。
原因は、PagerResultSetFactoryLimitOffsetWrapperクラス内のcreateResultSetで
PreparedStatementに対してtoStringを呼び出している箇所です。この時点で、Postgreのドライバの問題で、シングルクォーテーションが付加されないようです。
具体的には、s2-dao-xxx.jarの
org.seasar.dao.pager.PagerResultSetFactoryLimitOffsetWrapperの88行目の
String nativeSql = ps.toString();
を見ていただければ、分かると思います。
サンプルコードも添付しました。実行してもらえれば、
System.out.println(stmt)で出力されるSQLにシングルクォーテーションが付加されていないのが確認できると思います。実行自体は正しくできるため、内部的にシングルクォーテーションを付加していると思われます。
私が再現した環境は、
・S2dao-1.0.33
・S2Container 2.3.8
・PostgreSQL8.1.3
・postgresql-8.1-405.jdbc3.jar
です。
何か解決策などあれば、教えていただきたいです。
以上よろしくお願いします。
--
安田 広大([E-MAIL ADDRESS DELETED])
-----Original Message-----
From: [E-MAIL ADDRESS DELETED] [mailto:[E-MAIL ADDRESS DELETED]] On Behalf Of Hirotaka HONMA
Sent: Saturday, August 05, 2006 4:49 PM
To: [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:4266] Re:[S2Dao]pager使用時のSQLの不具合
本間@稚内 です。
On 8/4/06, 安田 広大 <[E-MAIL ADDRESS DELETED]> wrote:
> S2Daoで、pager使用時に埋め込み変数が'(シングルクォーテーション)
> で囲まれずに置換されてしまう不具合があるようなので、報告します。
1.0.33で試してみたのですが、再現できませんでした。
お手数ですけれど、再現可能なプログラムを頂けますか?
# スタックトレースも頂けると嬉しいです。
_______________________________________________
Seasar-user mailing list
[E-MAIL ADDRESS DELETED]
https://www.seasar.org/mailman/listinfo/seasar-user
-------------- next part --------------
テキスト形式以外の添付ファイルを保管しました...
ファイル名: Test.java
型: application/octet-stream
サイズ: 911 バイト
説明: Test.java
URL: http://ml.seasar.org/archives/seasar-user/attachments/20060823/fd637562/attachment-0004.obj
Seasar-user メーリングリストの案内