[seasar-dotnet:1738] Re: 区分値のプロパティを持つ外だしSQLのParameterBeanでコンパイルエラーが起きます

taknb2nch [E-MAIL ADDRESS DELETED]
2010年 6月 18日 (金) 21:16:26 JST


久保 さん


こんにちは、はぎの です。


早速の対応ありがとうございました。
区分値のご説明もありがとうございます。


DBFlute.NET-0.9.8.18-01-SNAPSHOTにて動作を確認したところ実行したところ、
問題なくコンパイルできました。

ありがとうございます。



ただ、検証をするうえで別の問題を見つけてしまったので、
別件として流します。


2010年6月18日17:44 kubo <[E-MAIL ADDRESS DELETED]>:
> 久保(jflute)です。
>
> はぎの さん、こんにちは
>
> フィードバックありがとうございます。
> DBFlute.NET-0.9.8.18-01-SNAPSHOTにて修正しました。
> ぜひお試し下さい。
> http://dbflute.net.sandbox.seasar.org/ja/environment/newest.html
>
> また、codeTypeに関してドキュメントが説明不足だったので、
> 説明を追記しました。
> http://dbflute.sandbox.seasar.org/ja/manual/reference/dfprop/classificationdefinition/index.html#codetype
>
> 但し、DBFlute.NETにおいては、ドキュメントの
> "ParameterBeanのプロパティとして区分値の型(CDef)を直接利用"
> をサポートしていませんので、実質的に codeType は、
> 今のところ動作に影響を与えるものではありません。
>
>> そもそもSetXXXXXメソッドがあるのでそれを使えば済むことなのですが。
>> (内部では変換してくれているようですね)
> さらには、Entityには、[カラム]As[区分値]というプロパティが
> ありますので、Code値を使わずにCDefをそのまま設定できます。
> よって、Code値の型を実装上で意識することは基本的にありません。
> (もちろん、SetXXXXXメソッドの利用が一番推奨される方法です)
>
> 2010/6/17 taknb2nch <[E-MAIL ADDRESS DELETED]>:
>> お世話になります。
>>
>> はぎの です。
>>
>>
>> DBFlute.NETにて、
>> classificationDefinitionMap.dfpropのcodeType=Numberの区分値を
>> 外だしSQLのParameterBeanにて使用した際、
>> sql2entityタスクにて生成されたParameterBeanクラスがコンパイルエラーになります。
>>
>> [classificationDefinitionMap.dfprop]
>> ; Flag = list:{
>>    ; map:{topComment=フラグを示す; codeType=Number}
>>    ; map:{code=1; name=True ; alias=はい  ; comment=有効を示す}
>>    ; map:{code=0; name=False; alias=いいえ; comment=無効を示す}
>> }
>>
>> [SQLファイル定義部分]
>> -- !df:pmb!
>> -- !!int? flag:cls(Flag)!!
>>
>>
>> [生成されたParameterBeanから抜粋]
>> protected int? _flag;
>>
>> public int? Flag {
>>    get { return _flag; }
>>    set { _deletedFlag = value; }
>> }
>>
>> public void SetFlag_True() {
>>    this.Flag = CDef.Flag.True.Code;
>> }
>>
>> public void SetDeletedFlag_False() {
>>    this.Flag = CDef.Flag.False.Code;
>> }
>>
>>
>> BsEntity以下のエンティティの、同区分値のプロパティの処理と同じく、
>> int.Parse()等の型変換が必要ではないかと思うのですがいかがでしょうか。
>>
>>
>> ちなみに、
>> classificationDefinitionMap.dfpropのcodeTypeですが、
>> String、NumberまたはBooleanで違いがあるのでしょうか。
>>
>> 生成されるソースではいずれの場合もCodeはStringになるのですが、
>> CDef.Flag.False.Codeを直接使いたい場合、常にキャストが必要になります。
>>
>> そもそもSetXXXXXメソッドがあるのでそれを使えば済むことなのですが。
>> (内部では変換してくれているようですね)
>>
>>
>> 実行環境
>> DBFlute:0.8.9.16
>>
>>
>> よろしくお願いいたします。
>> _______________________________________________
>> seasar-dotnet mailing list
>> [E-MAIL ADDRESS DELETED]
>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>>
> _______________________________________________
> seasar-dotnet mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>


seasar-dotnet メーリングリストの案内