[Seasar-user:1465] Re: S2Dao:where句の一部をバインドできないでしょうか。

jazzatny jazzatny
2005年 2月 2日 (水) 21:53:59 JST


佐藤です。前川さんありがとうございます。

> 前川@フリーダムです。
>
> とりあえずEntityManagerを使用したQueryの実行
> http://homepage3.nifty.com/seasar/s2dao.html#EntityManager
> で解決できると思います。
>

私の説明が不足していたのだと思いますが、
EntytyManagerを使用した自動生成のケースも、
SQLファイルのSQLコメントを使用したケースも、
当然のことながら「 a = ? 」の形に対するバインドを
想定しているので、?部分にStringが渡るとシングルクォーテーションで囲まれま 
す。

本件は

select *
   from a_tbl
  where a_tbl.where_cd = '8899'
    and ?

のような場合に、?部分に自前で用意した(orでつながる個数は
可変なので、SQLコメント等では対処できない)

   ((a_tbl.what_cd = '0' and a_tbl.why_cd = '1') or
    (a_tbl.what_cd = '3' and a_tbl.why_cd = '2') or
    (a_tbl.what_cd = '3' and a_tbl.why_cd = '2'))

のようなwhere句の一部を、シングルクォーテーションなしで展開できないか
ということでした。

これはひがさんにお願いするしかないようなことだと思うのですが、
対応していただけますでしょうか。



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