[seasar-s2dao-dev:69] Next S2Dao
Yasuo Higa
higa @ isid.co.jp
2006年 12月 21日 (木) 18:35:41 JST
ひがです。
S2Daoの1.1ですが、既存のユーザからみると
バージョンアップするメリットが見えづらいので
存在としてはちょっと弱いかなと思います。
また、S2Daoは、もともとSQLを中心にした
シンプルなフレームワークなので、OneToManyなどの
リッチな関連のサポートも、本来の方向性とは少し異なる気がします。
SQLとJavaBeansとのマッピングに徹して、リッチな関連が
欲しければHibernateなどを使ってもらうようにしたほうが
棲み分けとしては分かりやすい気がします。
というわけで、Next S2Daoは、N:1の関連も止めて
シンプルなSQLとJavaBeansのマッピングに徹する方向に
向かったほうがよいのではないかという提案です。
また、Next S2Daoは、Java5の機能をフルに生かしたもの
(Genericsなど)にすることで既存のユーザにとっての
利便性も上がるのではないかと思います。
私が考えているNext S2Daoの機能は次のとおりです。
・Genericsをつかうことで、任意のBeanをメソッドで
使えるようにする。
メソッドごとにBeanアノテーションを指定できるような感じ。
・メソッドのオーバーロードをサポートする。
同じ名前で複数のメソッドを定義できるようにする。
・JavaBeans(DTO)にJoinアノテーションを指定できるようにする。
@Join("dept")
public class EmployeeDto extends Employee {
private String deptName;
private String loc;
...
}
DTOを使うメソッドは、Joinアノテーションを利用して
自動的にSQL文を組み立てます。
また、またDTOと同じパッケージに
DTOのクラス名.sqlというSELECT文を記述したSQLファイルを
置くことによって、DTOにSQLをマッピングすることもできるようにします。
WHERE句の条件は、メソッドの引数により組み立てます。
KuinaDaoと同じ仕様(ConditionBeanとか)。
List<EmployeeDto> find(EmployeeCondition bean);
Pagingは、Hibernateのように、DBMSの機能をできる限り
使い切る。
後、この機能をS2Tigerに組み込みたいと思います。
Doltengが配布してくれるとはいえ、Seasar2とS2Daoは
タイトに結びついているため、一緒のほうがなにかと
便利なためです。
また、S2DaoをSeasar2に取り込むにあたり、今のEJB3とJPAの
サポートをS2Tigerから切り離し、S2EEにする予定です。
そしてこのSeasarのバージョンを2.5にする予定。
ご意見お聞かせください。
よろしくお願いします。
Yasuo Higa
The Seasar Project
seasar-s2dao-dev メーリングリストの案内