[Seasar-user:13598] Re: [S2JDBC] SimpleWhereでの'_'や'%'のlike検索について

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2008年 4月 7日 (月) 16:30:13 JST


小林 (koichik) です.

Date:    Mon, 7 Apr 2008 15:47:18 +0900
From:    "Noritaka Ishizumi" <[E-MAIL ADDRESS DELETED]>
To:      [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:13596] [S2JDBC] SimpleWhereでの'_'や'%'のlike検索について

> いまのS2JDBCでは、内部でSQLのLIKEが使用される、SimpleWhereのlikeやstartsなどを
> 使う時に、検索対象に'_'や'%'が入っていると、そのままLIKEの特殊文字として使われてしまい、
> '_'や'%'自体を検索することができないようです。

たしかに.

> SimpleWhereのlikeやstartsの使い勝手から考えると、そのSQL自動生成処理の中で
> "XXX like '$_%' escape '$' "のように自動的にescapeが追加されると嬉しいと思います。

検索対象に "$_" が含まれる場合 (まずないでしょうが)
とか考えてしまうと,エスケープ文字を自動で決めるのは
悩ましい気もするので,

starts(String propertyName, String value, char escape)

のように明示的にエスケープ文字を指定してもらうのが
無難な気もするのですがどうでしょうか?


-- 
<component name="koichik">
    <property name="fullName">"Koichi Kobayashi"</property>
    <property name="email">"[E-MAIL ADDRESS DELETED]"</property>
    <property name="blog">"http://d.hatena.ne.jp/koichik"</property>
</component>



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