[Seasar-user:4020] Re: [S2Dao]要望:PROCEDUREアノテーションでBean引数
加藤太朗
[E-MAIL ADDRESS DELETED]
2006年 7月 5日 (水) 11:02:49 JST
ほんまさん、こんにちは。加藤です。
レスありがとうございます。
> 「オブジェクトの場合」という判定が思いつかないので、
>
> - Daoメソッドの引数が1つ
> - プロシージャの引数が2つ以上
>
> の両方を満たす場合には、Daoの引数をDtoとして扱おうと思うので
> すが、どうでしょうか?
そうですね。プリミティブラッパー、String,Date...
通常引数とDtoの境目がどこかという判定はサジ加減が難しそうですので
その規約はとても良いとおもいます。
> それから、ARGSアノテーションについてですが、どういったケース
> での利用を想定されているのか教えて頂けますか?
プロパティ名がPROCEDURE引数名と完全一致する場合は良いの
ですが、キャピタライズやプロシージャ命名規約などの理由などにより
PROCEDURE毎にビーンを用意しないとならなくなってしまいます。
そうなりますと、他のエンティティビーンなどで使用していたプロパティを、
プロシージャに引き渡したいだけのために、プロシージャ毎のビーンを
生成・代入した上で引数を渡す…という煩雑なケースが多く発生することに
なってしまいますので必要になるケースが多いのではないかと考えています。
欲を言えば外部キー結合されたエンティティを引数にした場合に、
ARGSへの記述の中でオブジェクトプロパティのメンバーへのアクセスも
できると更に使いやすくて良いなぁと思っています。
ex.
method_ARGS = "a,b.c"
書きながら気付いたのですが、プロシージャ引数としては結合のない異なる型の
Dtoから引き出すことがよくあります。そのため引数1つだけではなく複数扱える
と良いように思えます(言ってることが変わってすみません)。
ex.
method_ARGS = "$1.a,$2.b.c";
void method(A a, B b);
引数が1つの場合だけ$1.が省略可能になるという感じです。
$1という記述方法はさておき、このような機能が実現できますとメソッド定義を
見るだけで、どこから引っ張ってきたどういったデータがプロシージャが求めて
いる引数なのかといったデータフローの把握が簡単にできるので、とても良いか
と思います。
(うわ、超ほしい機能になってきました)
しかしこれでは冒頭の話を再考しなければならないですね。
要望を勝手に膨らましてしまいまして申し訳ないです。
--------------------------------------------------------->>
Gluegent,Inc. T.Kato
http://package.gluegent.com/~kato/signature.xml
---->> generate products and services with high added value
> ほんまです。
>
> On 6/29/06, 加藤太朗 <[E-MAIL ADDRESS DELETED]> wrote:
>
> > メソッド引数が1つしかなく、それがオブジェクトの場合、
> > そのプロパティをストアド引数として展開されるようになると
> > とても助かります。
>
> 「オブジェクトの場合」という判定が思いつかないので、
>
> - Daoメソッドの引数が1つ
> - プロシージャの引数が2つ以上
>
> の両方を満たす場合には、Daoの引数をDtoとして扱おうと思うので
> すが、どうでしょうか?
>
> それから、ARGSアノテーションについてですが、どういったケース
> での利用を想定されているのか教えて頂けますか?
>
> DBメタデータからプロシージャの引き数名が取得できるので、
>
> ・プロシージャ
>
> HOGE_PROCEDURE(VARCHAR AAA, INT BBB)
>
> ・Dao
>
> public interface FooDao {
> String hoge_PROCEDURE = "HOGE_PROCEDURE";
> void hoge(FooDto fooDto);
> }
>
> ・Dto
>
> public class FooDto {
> private String aaa;
> private Integer bbb;
> // アクセサが続く...
> }
>
> とあればARGSアノテーションの出番は無いように思えるのです。
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://www.seasar.org/mailman/listinfo/seasar-user
Seasar-user メーリングリストの案内