[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 メーリングリストの案内