[Seasar-user:3599] Re: [S2Dao]N:1マッピングについて

上原 慶三 [E-MAIL ADDRESS DELETED]
2006年 5月 11日 (木) 05:49:08 JST


上原です。
筒井 勉 wrote:
> はじめまして筒井と申します。
> S2DaoでのN:1マッピングについて質問させて下さい。
> 
> (1)3つのテーブル(T1,T2,T3)があり、T1とT2およびT2とT3のそれぞれにN:1関連
> があります。
> 
> (2)Daoのメソッドとしては、以下の2つが必要です。
>  a. T1とT2の情報を取得する。(sql文はs2daoによる自動生成)
>  b. T1とT2とT3の情報を取得する。(sql文はsqlファイルに記述)
> 
> 上述のような条件の場合、作成すべきJavaBeanは以下のようになると思います。
> そうすると、T1,T2を表すものとT1,T2,T3を表すものの2種類のBeanが必要になり
> ます。Beanとしては、T1,T2,T3を表すものを1つ用意し、T3の情報についてはDao
> のメソッドにより取得したりしなかったりしたいと考えています。現状では、T3
> のRELNO定数を指定した時点で、S2Daoのsql生成時にT1とT3が結合されてしまう
> ので実現ができないようです。
> やはり、Beanを2つ用意するのが正しいのでしょうか。アドバイス頂ければ幸い
> です。
> (sql自動生成時に含めないRELNO定数みたいのがあればなと考えていました)
> 
> 
> (2-aの場合)
>  ・T1用Bean(B1)にT2用Bean(B2)を含める。
>  ・B1にT2用のRELNO定数およびRELKEYS定数を記述。
> 
> (2-bの場合)
>  ・T1用Bean(B1)にT2用Bean(B2)およびT3用Bean(B3)を含める。
>  ・B1にT2用およびT3用のRELNO定数を記述。
> 
 すいません、現状ではN:1マッピングでのネスト(T1:T2=N:1 かつ T2:T3=N:1)
はできないようになってます。

 もし自分がやるとしたら、
T1用のdaoとT3用のdaoを用意して、
a. の場合は普通にT1用のdaoのN:1の機能を利用し
b.の場合はT1用のdaoからT1、T2を取得したのちにT3用のdaoからT3を取得して
T2にT3をセットする関数をじぶんで書くでしょうか。

 他にもっといい方法があれば教えてください。
-- 
---
上原 慶三<[E-MAIL ADDRESS DELETED]>



Seasar-user メーリングリストの案内