[seasar-dotnet:1777] Re: [S2Dao.net] 検索処理の戻り値の型について

李い [E-MAIL ADDRESS DELETED]
2010年 7月 12日 (月) 09:44:42 JST


久保さん

 李です。ご返事ありがとうございます。

 質問のメールは簡単すぎて申し訳ありませんでした。

確かに状況整理の通り、

> Java版では
>
> Beanアノテーション: DepartmentDto
> Selectメソッド: List<DepartmentDto2> getAll();
>
> で、Beanアノテーションとは違うDTOを戻り値(DepartmentDto2)
> をGeneric型に指定して受け取る事ができる

なので、.Net版もできると勝手に想定してしまいました。


> こちらのドキュメントですが、
> http://s2dao.net.seasar.org/ja/dao.html#Select
> 特に "Bean属性以外のDTO" という記述はなく、
> 3行目は、単にGeneric型を使った場合の戻ってくる
> 実体のクラスのことを書いているだけのように思えます。

よく読んだら、確かにその通りです。
Java版のhttp://s2dao.seasar.org/ja/s2dao.html#DefMethod と似ているから、 

はっきり読んでいませんでした:(


> そして、ぱっと見る限り、S2Dao.NETのテストでそういった
> テストも見当たらず、ソースを見てもそれっぽいところが
> 見当たりません。

そうですね、先週頑張ってS2Dao.NETのソースを読んだが、
Javaと同じ雰囲気のコードを見つかりませんでした。
やっばり.NET版はできないですね...
できたらいいなぁ...


別のやり方を考えます。
ありがとうございます。


----- Original Message ----- 
From: "kubo" <[E-MAIL ADDRESS DELETED]>
To: <[E-MAIL ADDRESS DELETED]>
Sent: Saturday, July 10, 2010 10:18 AM
Subject: [seasar-dotnet:1776] Re:[S2Dao.net] 検索処理の戻り値の型について


> 久保(jflute)です。
>
> 李さん、こんにちは
>
>> エラーメッセージやスタックトレースがわからないので
>> ずれたことを言っているかもしれませんが、
>
> まずは、小谷さんの言う通りなので、
> エラーメッセージとスタックトレースを差し支えない
> 範囲で提示して頂けると助かります。
>
>> S2DaoのJava版では、「検索処理の戻り値にBeanアノテーションに
>> 指定したクラス以外のDTOやMapの利用が可能」の仕様はあります。
>>  .Net版も同じ仕様(http://s2dao.net.seasar.org/ja/dao.html#Select の3行目)だ 
>> 
>> と思いますが、実際試したら、キャストエラーが発生しました。
>
> 状況を整理すると、Java版では
>
> Beanアノテーション: DepartmentDto
> Selectメソッド: List<DepartmentDto2> getAll();
>
> で、Beanアノテーションとは違うDTOを戻り値(DepartmentDto2)
> をGeneric型に指定して受け取る事ができると。
> で、それがS2Dao.NETでもできるかどうか!?
>
> Bean属性: DepartmentDto
> Selectメソッド: IList<DepartmentDto2> GetAll();
>
> で、実際に以下のことを試したらキャスト例外だったと。
> (李さんの環境のVB.NETにおいて)
>
>>  .Net版も同じ仕様(http://s2dao.net.seasar.org/ja/dao.html#Select の3行目)だ 
>> 
>> と思いますが、実際試したら、キャストエラーが発生しました。
>
> こちらのドキュメントですが、
> http://s2dao.net.seasar.org/ja/dao.html#Select
> 特に "Bean属性以外のDTO" という記述はなく、
> 3行目は、単にGeneric型を使った場合の戻ってくる
> 実体のクラスのことを書いているだけのように思えます。
> (別件ですが、実体のクラスのnamespaceが間違ってる...)
> なので、S2Dao.NETにおいて、"Bean属性以外のDTO" を
> 扱うことができるかどうかがそもそも不明な気がします。
>
> そして、ぱっと見る限り、S2Dao.NETのテストでそういった
> テストも見当たらず、ソースを見てもそれっぽいところが
> 見当たりません。どなたか、素のS2Dao.NETで、
> "Bean属性以外のDTO" の戻り値を利用している人、
> もしくは、利用できないことを知ってる人が
> いらっしゃいましたら、フォロー頂けるとありがたいです。
>
> ちなみに、DBFlute.NETと組み合わせたS2Dao.NETでは、
> 外だしSQLにおいて、この "Bean属性以外のDTO" の戻り値を
> 利用できます。(ただ、DBFlute.NETでは外だしSQLは別のI/Fが
> あるので、そもそもそういった利用方法は今しませんが)
> それは、DBFlute.NETで明示的にそのように拡張しているからです。
> この拡張を実装した理由が、S2Dao.NETでそれができないから
> 拡張したのかどうか...
> すいません、昔過ぎてちょっと忘れてしまいました。
>
> 2010/7/10 koyak <[E-MAIL ADDRESS DELETED]>:
>> 李さん
>>
>> 小谷です。
>>
>> エラーメッセージやスタックトレースがわからないので
>> ずれたことを言っているかもしれませんが、
>> 「Function GetAll() As IList(Of DepartmentDto)」は
>> 正常に動く、という前提でいくと
>> IDepartmentDaoの方が怪しいように思えます。
>>
>> IDepartmentDaoのBean属性をご確認いただけないでしょうか。
>> ここで指定している型がもし「DepartmentDto」のままでしたら
>> 「DepartmentDto2」修正して実行してみて下さい。
>>
>> 2010年7月9日9:31 李い <[E-MAIL ADDRESS DELETED]>:
>>> 李と申します。
>>>
>>> S2DaoのJava版では、「検索処理の戻り値にBeanアノテーションに
>>> 指定したクラス以外のDTOやMapの利用が可能」の仕様はあります。
>>> .Net版も同じ仕様(http://s2dao.net.seasar.org/ja/dao.html#Select の3行目)だ 
>>> 
>>> と思いますが、実際試したら、キャストエラーが発生しました。
>>>
>>>
>>> .Net版のサンプルを使って試しました。
>>> 修正箇所: IDepartmentDao の
>>> Function GetAll() As IList(Of DepartmentDto)
>>>>>> Function GetAll() As IList(Of DepartmentDto2)
>>>
>>> 関連の箇所を省略します。
>>>
>>>
>>> よろしくお願いします。
>>>
>>>
>>> _______________________________________________
>>> seasar-dotnet mailing list
>>> [E-MAIL ADDRESS DELETED]
>>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>>>
>> _______________________________________________
>> seasar-dotnet mailing list
>> [E-MAIL ADDRESS DELETED]
>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>>
> _______________________________________________
> seasar-dotnet mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
> 



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