[Seasar-user:8771] [S2Dao] Tiger アノテーションで、 in を指定すると失敗する

松山 大樹 [E-MAIL ADDRESS DELETED]
2007年 6月 28日 (木) 14:54:15 JST


 松山です。

 S2Dao で、

  public static final String getHoge_ARGS = "aUserNo,aLessonIDList";
  public static final String getHoge_QUERY = "userNo = /*aUserNo*/'001' and lessonID in /*aLessonIDList*/(1,2,3)";
 public List<HogeData> getHoge(String aUserNo, List<Integer> aLessonIDList);

 と記述すると、正しく実行されますが、これをTigerアノテーションで

  @Arguments("aUserNo,aLessonIDList")
  @Query("userNo = /*aUserNo*/'001' and lessonID in /*aLessonIDList*/(1,2,3)")

 と記述しなおすと、

DEBUG 2007-06-28 14:40:26,294 BEGIN jp.co.hoge.dao.HogeDao#getHoge(001, [1, 2])
WARN  2007-06-28 14:40:27,199 引数(aUserNo)が見つかりません
WARN  2007-06-28 14:40:27,199 引数(aUserNo)が見つかりません
WARN  2007-06-28 14:40:27,199 引数(aLessonIDList)が見つかりません
DEBUG 2007-06-28 14:49:13,152 SELECT ... FROM HogeData WHERE userNo = null and lessonID in 

 となり、正しく実行されません。

 順序を逆にして、

  @Arguments("aLessonIDList,aUserNo")
  @Query("lessonID in /*aLessonIDList*/(1,2,3) and userNo = /*aUserNo*/'001'")

 でも同じです。

 引数をList だけにして、

  @Arguments("aLessonIDList")
  @Query("lessonID in /*aLessonIDList*/(1,2,3)")

 だと正しく実行されます。
 何か、Tigerアノテーションで記述するときに、特別なルールとかありますか?

 s2-framework-2.4.13.jar
  s2-extension-2.4.13.jar
  s2-tiger-2.4.13.jar
  s2-dao-1.0.44.jar
  s2-dao-tiger-1.0.44.jar

 です。



-- 
::: 株式会社WOWOWコミュニケーションズ http://www.wowcom.co.jp/
:::   ITシステムインテグレートサービスDept.
:::  Webソリューション開発Unit.
:::   松山 大樹 - [E-MAIL ADDRESS DELETED]





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