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