S2daoで/*IF 〜*/
S2Daoで/*IF 〜 */ 〜 /*END*/が、うまくいかないと思っていたら@Argumentsで使用する変数名を指定してあげなければいけない事を知った。
http://s2dao.seasar.org/ja/tiger-annotation.html#ArgsAnnotation
を見てもJAVA脳じゃないのか、まったく理解できずググってたらIT Mediaか何かの記事で書いてあったサンプルを見てもしや!?と気づいたしだい。
で、よくよくドキュメントを読んでみると
http://s2dao.seasar.org/ja/s2dao-tiger.html#ArgsAnnotation
書いてあるっちゃ書いてある。
ただ、この文章も@Argumentsに気づいた今なら理解できるけど・・・
@Queryと/*IF 〜*/と?と@Argumentsの関係性が図で欲しかったなぁ。
やっぱりJAVA(に限った事ではないだろうけど)はドキュメントを隅から隅まで3回くらいは読んだ上でサンプルを動かし、MLを眺めないと使えないのかな。。
http://s2dao.seasar.org/ja/tiger-annotation.html#ArgsAnnotation
を見てもJAVA脳じゃないのか、まったく理解できずググってたらIT Mediaか何かの記事で書いてあったサンプルを見てもしや!?と気づいたしだい。
で、よくよくドキュメントを読んでみると
メソッドの引数をSQL文で参照できるように、 org.seasar.dao.annotation.tiger.Argumentsアノテーションを使用し メソッドの引数名を指定します。メソッドの引数名は、リフレクションで 取得できないためです。
http://s2dao.seasar.org/ja/s2dao-tiger.html#ArgsAnnotation
書いてあるっちゃ書いてある。
ただ、この文章も@Argumentsに気づいた今なら理解できるけど・・・
@Queryと/*IF 〜*/と?と@Argumentsの関係性が図で欲しかったなぁ。
@Arguments({"lang","typeId","publicFrom","keyword","like_keyword","order"})
@Query(" LANG = /*lang*/"
+ " /*IF typeId != 0 */ AND TYPE_ID = /*typeId*/ /*END*/"
+ " /*IF publicFrom != null */ AND PUBLIC_FROM = /*publicFrom*/ /*END*/"
+ " /*IF keyword != '' */ AND MEMO like(/*like_keyword*/) /*END*/"
+ " /*IF order == 1 */ ORDER BY UPDATE_DATE DESC /*END*/"
+ " /*IF order == 2 */ ORDER BY UPDATE_DATE ASC /*END*/"
)
public StaffAnnounce[] search(String lang,
Integer typeId,
String publicFrom,
String keyword,
String like_keyword,
Integer order,
PagerCondition dto);
やっぱりJAVA(に限った事ではないだろうけど)はドキュメントを隅から隅まで3回くらいは読んだ上でサンプルを動かし、MLを眺めないと使えないのかな。。