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

kubo [E-MAIL ADDRESS DELETED]
2010年 6月 18日 (金) 17:44:00 JST


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