[seasar-s2dao-dev:593] Re: S2DaoのFetch対応について

Jundo Ishikawa [E-MAIL ADDRESS DELETED]
2008年 2月 6日 (水) 00:40:10 JST


JUNDUです。

 お疲れ様です。

08/02/05 に Toshihiro Nakamura<[E-MAIL ADDRESS DELETED]> さんは書きました:
> > ResultSetをマッピングする型は、引数の型から取得しようと思います。指定された引数自
> > 身から取得して毎回違うのに対応するとなると、ちょっと影響範囲が大きくなりそうなので。
> > 呼出し毎に別の型が指定できる必要ってありそうでしょうか?
>
> 呼び出し毎に違う型ってどういう意味でしょうか?

 メソッドを以下のように定義して。。。

public interface FooDao {
    int fetchAll(FetchHandler handler);

 実行時に以下のように。。。

fooDao.fetchAll(new FetchHandler<Employee>() {
    // Employeeを1つずつ処理...

 別の呼び出しでは以下のように。。。

fooDao.fetchAll(new FetchHanlder<EmployeeDto>() {
    // EmployeeDtoを1つずつ処理...

 というような感じで、同じDaoメソッドの呼び出しでフェッチ結果を異なるBean
型に詰めたいことが、もしかしたらあるのかなぁと。出来れば、以下のようにDao
メソッドを定義してもらって固定の方が考えることは少ないのかなぁと思いました。

public interface BarDao {
    int fetchAll(FetchHandler<Employee> handler);

> > あとは、そのResultSetHandlerをTigerのときのみ適用するためには、ResultSetHandlerFactory
> > を入れ替える必要があるかなと考えています。
>
> できればですが、入れ替えなくても使えた方がうれしなぁ。。

 ちなみに入れ替えというのは、jarに含んでいるResutSetHandlerFactoryImplの
部分なので、使うために修正が必要になるのはカスタマイズしている人だけのつも
りでした。

 ResultSetHandlerFactoryImplに委譲するResultSetHandlerFactoryを作って、
Tigerが有効ならTiger側のResultSetHandlerFactoryに委譲するようにしようかなと。
今までのクラスに手を入れなければ、従来の動きに戻したい時に設定ファイルだけ
で対応出来ますし。

 言葉で書いてると、なんだか分かりにくいですね(^^;;


-- 
 Jundo Ishikawa <[E-MAIL ADDRESS DELETED]>
         ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄


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