[Seasar-user:20625] Re: [S2Dao]埋め込み変数コメントについて

magari [E-MAIL ADDRESS DELETED]
2011年 2月 26日 (土) 17:28:47 JST


久保さま

早々のご回答ありがとうございます。
ご指摘通りARGSアノテーションを追加して無事動作することを
確認できました。

@Arguments( { "no", "name" })
@Sql("select name, phone/*$no*/ as phone, mail/*$no*/ as mail from
     address where name = /*name*/")
public Adress select(int no, String name);

ありがとうございました。

magari
Mail:[E-MAIL ADDRESS DELETED]

---- kubo <[E-MAIL ADDRESS DELETED]> さんは書きました: 
> 久保(jflute)です。
> 
> ARGS アノテーションが必要に思えるので、
> とりあえずはそこを確認してみると良いかと。
> 
> // S2Dao - リファレンス - ARGSアノテーション
> http://s2dao.seasar.org/ja/s2dao.html#ArgsAnnotation
> 
> 2011/2/26 magari <[E-MAIL ADDRESS DELETED]>:
> > お世話になっております。
> > magariと申します。
> >
> > カラム名を動的に変更させて以下のようなSQL文を作成したく
> > (DBにはphone1とmail1は2,3,4...とあります)
> > select name, phone1 as phone, mail1 as mail from address where name = 'hoge';
> >
> > 埋め込み変数コメントとバインド変数コメントを使用して
> > 以下のようなSQLアノテーションとselectメソッドを作成しました。
> > phoneとmailはペアで同じインデックスを使用します
> >
> > @Sql(select name, phone/*$no*/ as phone, mail/*$no*/ as mail from address where name = /*name*/)
> > public Adress select(int no, String name);
> >
> > 動作させたところ、埋め込み変数コメントがうまく有効にならず、発行されたSQL文が
> > select name, phone as phone, ...
> > となっており、phoneというカラムは無いとエラーがでてしまいます。
> >
> > 引数をDtoにして
> > @Sql(select name, phone/*$dto.no*/ as phone, mail/*$dto.no*/ as mail from address where name = /*dto.name*/)
> > とすればうまくいきます。
> >
> > ログを検索してみましたが、いまいち分からず。。。
> > 引数を個別の値にした場合の対策方法を教えていただけないでしょうか。
> >
> > よろしくお願いいたします。
> >
> > magari
> > Mail:[E-MAIL ADDRESS DELETED]
> >
> > _______________________________________________
> > Seasar-user mailing list
> > [E-MAIL ADDRESS DELETED]
> > https://ml.seasar.org/mailman/listinfo/seasar-user
> >
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user



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