[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 メーリングリストの案内