[Seasar-dev:100] S2Daoでテーブルの切替

上原 慶三 keizou
2005年 7月 31日 (日) 01:56:46 JST


上原です。seasar-userに書いたものですがseasar-devの方がふさわしい
と思うので、こちらで続けます。

>DTOアノテーションのような感じでいけるのではないかと思います。
>後、ベースのクラスにカラムの情報を記述し、継承したクラスで
>TABLEアノテーションを記述すれば、うまくいくような気もします。

diconファイルで設定が上書きできれば一番いいと思うのですが。

たとえば、
テーブルの切り替えを行いたいDaoに
interface TableSwitch {
  setTableName(Class beanClass,String tableName);
}
などのインターフェースを継承してもらい、diconで

<component name="employeeDao2" class="examples.dao.EmployeeDao">
  <initMethod name="TableName">
    <arg>@examples.dao.EmployeeDao @ class</arg>
    <arg>emp2</arg>
  </initMethod>
  <initMethod name="TableName">
    <arg>@examples.dao.Department @ class</arg>
    <arg>department2</arg>
  </initMethod>
  <aspect>dao.interceptor</aspect>
</component>
などと指定することを考えてました。
ただ、いまのS2Daoの実装だと、アスペクトの適用元ごとに
DaoMetadataImplをキャッシュしてしまうので、
dao.interceptorのinstance属性をprototypeにして、
DaoMetadataImplのキャッシュをS2DaoInterceptorで持つようにしたいと思うの
ですが、
影響が大きすぎるでしょうか。

>>
>> そろそろ、S2Dao1.0系列をバグフィックスのみにして
>> S2Dao1.1系列の開発を開始すべきだと思うんですがどうでしょうか。
>>

>バグフィックス・要望を一通りこなすまで、1.0系にして、
>backport175対応から4.0系にしませんか。

要望を実現していくうちに互換性が取れなくなってしまう可能性が
あるので、現在の1.0系列はバグフィックスのみにして、
要望は別バージョンで対応した方がいいかと思ったのですが。
-- 
---
上原 慶三<keizou @ jd6.so-net.ne.jp>


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