[seasar-dotnet:1477] Re: [DBFlute] 外だしSQLのSelectEntityで結果がNULLのときに例外

kubo [E-MAIL ADDRESS DELETED]
2009年 9月 18日 (金) 19:24:05 JST


久保(jflute)です。

ちなみCollectionの特徴とは:

new List<DateTime?>().Add(null);
は、可能なのに
((System.Collections.IList)new List<DateTime?>()).Add(null);
が、不可(例外)という挙動のことです。
(納得いかない...)

他の方で、この回避策をご存知の方いらっしゃいましたら、
ご教授頂けると助かります。
(共通部分の処理なので、Genericの方は特定出来ず
 Add処理はどうしても汎用的なSystem.Collections.IListで
 取り扱っています)


2009/9/18 kubo <[E-MAIL ADDRESS DELETED]>:
> 久保(jflute)です。
>
> 西山さん、こんばんは
>
> フィードバックありがとうございます。
> こちらでも現象を確認致しました。
> しかしながら、.NETのCollectionの特徴に引っ掛かっていて、
> 一筋縄では行かなそうですね...現状スマートな解決策が
> ちょっと思いついてません。
>
> ひとまずJIRAには登録しました。
> https://www.seasar.org/issues/browse/DBFLUTENET-14
> すぐに解決できないかもしれないので、
> とりあえずはnvlでの回避お願いします。
>
> 2009/9/18 西山 はじめ <[E-MAIL ADDRESS DELETED]>:
>> お世話になっております。
>> 西山です。
>>
>> 外だしSQLのSelectEntityを利用するときに、
>> ・Select句を1カラム指定
>> ・戻り値のEntityを「値型(Integerなど)」
>> にすると、SQLの結果がNULLだったときに例外が発生してしまいます。
>>
>> S2DaoMetaDataExtension.csの、
>> InternalObjectGenericListResultSetHandler.Handleメソッド内で
>> nullをresultListに追加しているからのようです。
>>
>> int?のNullable型もダメなようです。
>>
>> Oracleなので、NVLでNULLが返らないようにしましたが、DBFlute側
>> でNULLを返すようにしてくださると助かります。
>>
>> :環境
>> .NET 2.0
>> VB 2008
>> DBFlute 0.8.9.2
>> Oracle 9.2.0.6
>>
>> :ログ
>> [Exception]
>> System.ArgumentException
>> 値 "" は型 "System.Nullable`1[System.Int32]" ではなく、この
>> 汎用コレクションでは使用できません。
>> パラメータ名: value
>>
>>
>> 以上よろしくお願いいたします。
>> --
>> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>> 株式会社フジミック
>> システム開発センター ソフトウェア開発部
>> 西山 創
>> [E-mail]:[E-MAIL ADDRESS DELETED]
>>
>> 〒140-0002 東京都品川区東品川3-32-42 フジテレビ別館7階
>> [TEL]:03-5495-1060
>> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>>
>> _______________________________________________
>> seasar-dotnet mailing list
>> [E-MAIL ADDRESS DELETED]
>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>>
>


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