[seasar-s2dao-dev:79] Re: Next S2Dao

kubo jazzflute @ mbn.nifty.com
2006年 12月 22日 (金) 19:34:54 JST


久保です。

> ...(略)
> @Fetch("bbb", fetches=@Fetch("ccc")
> List<Aaa> find(...);
> ならプロパティのbbb、プロパティbbbのプロパティcccも同時に取得する。
> 
> というのでどうでしょう。
> この方式なら、予期せぬデータが取得されることはなく、
> 開発者のイメージ通りにデータが取得されると思うので、
> 問題はないと思います。

おお。。。

それならば、例えばS2Dao-CodeGenを使った場合において、
FK情報から生成したEntity間のRelationをフルに活用することが可能ですし、
ひがさんの提案する「継承によるJoin指定」(すいません呼び名が不明で...)
も同時に利用可能です。非常に相性がいいと思います。

DBFluteの場合は、ちょっと変わりますが、
S2Daoが「ManyToOne形式でEntityにMappingする機能」があって、
そこに渡すJOIN情報の部分をDicon切り替えの独自カスタマイズする
ポイントさえあれば、現状の仕様を満たしつつ、
「継承によるJoin指定」も利用可能です。

# DBFluteはDaoメソッドの引数で結合先を決定しているため、
# 上記のとおりなのです。(CBは自動生成)
#   AaaCB cb = new AaaCB();
#   cb.setupSelect_Bbb(); // 親(BBB)の結合
#   cb.setupSelect_Ccc().withDdd(); // 親(CCC)と親(DDD)の結合
#   dao.selectList(cb);

色々意見を尊重して頂いて本当にありがとうございます。



> ちなみに、Relno系は廃止しようと思っています。
> もともと、SQLファイルを書いた場合でも、N:1マッピングが
> 可能なようにあのような仕様にしていたのですが、
> SQLファイルを書くときは、DTOへのフラットなマッピングで
> 十分だと思うからです。

そうですね。
SQLファイルの場合にN:1マッピングが不要なのは同感です。


余談ですが、Aliasに指定するRELNOは、自動生成ツールと相性が悪く、
開発途中でFKが追加されたときに、番号が変わってしまい一気に
動かなくなるので、「外だしSQLはN:1マッピングしないで」
とプロジェクトの規約にしていました。



-- 
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
kubo   <jazzflute @ mbn.nifty.com>
jflute <http://d.hatena.ne.jp/jflute>
株式会社ビルドシステム <http://www.buildsystem.co.jp>
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/



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