[Seasar-user:13145] Re: [S2JDBC]SQLファイルによる操作でlike文が上手くいかない
出羽 健一
[E-MAIL ADDRESS DELETED]
2008年 3月 4日 (火) 12:04:57 JST
小林 (koichik)さん
出羽です、いつもお世話になっております。
> > コードを実行すると次のようなSQL文が
> > 生成されるものと期待していました。
> >
> > select * from employee
> > where
> > name like 'A%'
> >
> > しかし、実際に生成されたSQL文は以下のとおりで、
> > 期待した結果と異なっていました。
> >
> > [getCompleteSqlメソッドによるログ]
> > select * from employee
> > where
> > name like 'A'
> >
> > [getRawSqlメソッドによるログ]
> > select * from employee
> > where
> > name like ?
>
> それが仕様です.
> SQL ファイルについては S2Dao と同等です (たぶん).
> そんなわけで (どんなわけで?),S2Dao のドキュメント
>
> http://s2dao.seasar.org/ja/s2dao.html#SQLBind
>
> の「バインド変数コメント」より.
了解しました。
> あるいは SQL ファイルで
>
> select * from employee
> where
> name like /*name*/'S' || '%'
>
> のようにするかですね.
なるほど。
HSQLDBだと || の演算子がどうも使えないっぽいので、
select * from employee
where
name like concat(/*name*/'S', '%')
のようにする必要がありました。
Seasar-user メーリングリストの案内