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

taknb2nch [E-MAIL ADDRESS DELETED]
2010年 6月 17日 (木) 18:56:19 JST


お世話になります。

はぎの です。


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