[Seasar-user:9879] Re: 2個以上の引数をもつストアドプロシージャで引数がnullになる

多加谷 祐 [E-MAIL ADDRESS DELETED]
2007年 8月 14日 (火) 01:35:36 JST


久保さん
多加谷です。 

ARGSアノテーションでうまく行きました。
ありがとうございました。 

(マニュアルを読まないとダメですね) 

> 久保です。 
> 
> 多加谷さん、こんばんわ 
> 
>> dbflute-0.5.2
>> s2dao-1.0.43
>> SQL Server 2005  
>> 
>> で以下の現象が出ています。原因が分かりますでしょうか?  
>> 
>> [現象]
>> SQL2Entityで生成したEntityを使い、Dao経由でストアドプロシージャを呼び出すと、引数が2個以上のときに引数が見つからずにすべてnullが渡されてしまう。  
>> 
>>  --#UspGetFacilityList2Entity#--
>> execute dbo.usp_get_facility_list2 /*currentDttm1*/'2007/08/01', /*currentDttm2*/'2007/08/01' 
> 
> こちらですが、C#版S2Daoとは違い、2つ以上の引数の場合は、
> ARGSアノテーションなるものを利用しなければなりません。
> Javaでは、Methodの引数の名称がReflection経由で取得できないためです。 
> 
> public static final uspGetFacilityList2_ARGS = "currentDttm1,currentDttm2";
> http://s2dao.seasar.org/ja/s2dao.html#ArgsAnnotation 
> 
> 
> DBFluteでは引数が2つ以上のときに、
> SqlParameterBeanなる引数DTOを利用するのが習慣です。
> (ARGSアノテーションを利用しない)
> http://dbflute.sandbox.seasar.org/ja/tips-sql2entity.html 
> 
> 【外だしSQL】
> ***************************************************************
> --#UspGetFacilityList2Entity#--
> --!CurrentDttmPmb!
> --!!java.util.Date currentDttm1!!
> --!!java.util.Date currentDttm2!!
> execute dbo.usp_get_facility_list2 /*pmb.currentDttm1*/'2007/08/01', /*pmb.currentDttm2*/'2007/08/01' 
> *************************************************************** 
> 
> 【Dao】
> /*
>  * 全設備を取得する。
>  */	
> List<RkUspGetFacilityList2Entity> uspGetFacilityList2(CurrentDttmPmb pmb); 
> 
> 【呼び出し側】
> CurrentDttmPmb pmb = new CurrentDttmPmb();
> pmb.setCurrentDttm1(date1);
> pmb.setCurrentDttm2(date2);
> List<RkUspGetFacilityList2Entity> ls = dao.uspGetFacilityList2(pmb); 
> 
> 
> どちらの方法を利用されても構いません。 
> 
> 
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
 




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