[Seasar-user:4409] Re: [S2Dao]pager使用時のSQLの不具合
安田 広大
[E-MAIL ADDRESS DELETED]
2006年 8月 23日 (水) 15:44:55 JST
安田です。
あがたさん、素早いお返事ありがとうございます。
無事、解決しましたので、報告します。
しかし、公式ドキュメントに載っているとは・・・完全に見逃していました。
赤文字で目立つように書いてあるとうれしかったですね^^;
--
安田 広大([E-MAIL ADDRESS DELETED])
-----Original Message-----
From: [E-MAIL ADDRESS DELETED] [mailto:[E-MAIL ADDRESS DELETED]] On Behalf Of AGATA Toshitaka
Sent: Wednesday, August 23, 2006 2:49 PM
To: [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:4407] Re: [S2Dao]pager使用時のSQLの不具合
あがたです。
おそらく、JDBCの接続文字列にパラメータ
「protocolVersion=2」が
付いていないのが原因ではないかと思います。
詳細は、http://s2dao.seasar.org/ja/
s2pager.html#LimitOffsetを
ご覧くださいませ。
■実行結果
・protocolVersion=2無しの場合
select * from TEST_TABLE where TEST_TABLE.NAME like %TEST%
・protocolVersion=2付きの場合
select * from TEST_TABLE where TEST_TABLE.NAME like '%TEST%'
以下のJDBCドライバで確認しました。
- postgresql-8.1-404.jdbc3.jar
- postgresql-8.1-405.jdbc3.jar)
以上です。
On 2006/08/23, at 14:19, 安田 広大 wrote:
> 安田です。
>
> 以前報告した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:seasar-user-
> [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
> <Test.java>
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://www.seasar.org/mailman/listinfo/seasar-user
_______________________________________________
Seasar-user mailing list
[E-MAIL ADDRESS DELETED]
https://www.seasar.org/mailman/listinfo/seasar-user
Seasar-user メーリングリストの案内