[Seasar-user:15100] Re: 【S2DAO】バインド変数を用いたSQLについて

Toshihiro Nakamura [E-MAIL ADDRESS DELETED]
2008年 7月 19日 (土) 18:41:01 JST


中村(taedium)です。

> -------------TestDao---------------
> @Query("COL1 IN /*arg1*/('test','test1') AND COL2 = /*arg2*/9")
> public XXXEntity selectCondition(String[] arg1, Integer arg2)
> 
> -------------呼び出し--------------
> String[] arg1 = {"aaa", "bbb"};
> Integer arg2 = new Integer(1);
> dao.selectCondition(arg1, arg2)
> 
> 
> この様にDAOを作成し、実行すると
> 
> WHERE COL1  IN  AND COL2  = null
> 
> となってしまい、正常なSQLが作成されません。

@Argumentsの指定が抜けているからだと思います。
次のようにDaoのメソッド定義にアノテーションを付け加えれば
大丈夫です。

  @Arguments( { "arg1", "arg2" })
  @Query("COL1 IN /*arg1*/('test','test1') AND COL2 = /*arg2*/9")
  public XXXEntity selectCondition(String[] arg1, Integer arg2)
-- 
Toshihiro Nakamura



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