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

西山 はじめ [E-MAIL ADDRESS DELETED]
2009年 9月 18日 (金) 20:39:11 JST


西山です。

了解しました。
重要度は高くありませんのでNVLで回避しておきます。

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

これは確かに納得いかないですね。
.NET・・・不思議な動きしますね。


[2009/09/18 19:24] kubo さんは書きました。:
> 久保(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
>>>
> 
> 
> 


-- 
++++++++++++++++++++++++++++++++++++++++++++++++++++++++
株式会社フジミック 
        システム開発センター ソフトウェア開発部
 西山 創
[E-mail]:[E-MAIL ADDRESS DELETED]
 
〒140-0002 東京都品川区東品川3-32-42 フジテレビ別館7階
[TEL]:03-5495-1060
++++++++++++++++++++++++++++++++++++++++++++++++++++++++



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