[Seasar-user:13400] Re: DBfluteのCB、Bhvクラスについて

kubo [E-MAIL ADDRESS DELETED]
2008年 3月 24日 (月) 11:37:03 JST


久保です。

> DBfluteではテーブル一つに対して、同じプロパティを持つEntityが生成されるのではないのですか?

はい、これはそのとおりです。

会員というテーブル、会員ステータスというテーブルがあったら、

会員 → MEMBERというEntityクラス
会員ステータス → MEMBER_STATUSというEntityクラス

> 複数のテーブルからデータを取得する場合、格納先のEntityクラスと取得した項目の齟齬がでると
> 思うのですがこの認識は誤りでしょうか?(実は複数テーブルからの取得でここが一番の疑問でした。)

ConditionBeanでsetupSelect_MemberStatus()としたとき、SQL上は

select 会員の項目、会員ステータスの項目
  from 会員 left outer join 会員ステータス

となり、Java上では

会員ステータスEntity memberStatus = 会員Entity.get会員ステータスEntity();
... = memberStatus.get会員ステータスの項目();

のように、会員ステータスの項目を取得することができます。

> Sqlファイルからデータを取得するときに、対応する項目のEntityクラスを生成するように
> ConditonBeanを利用する場合も対応するEntityクラスを作成する必要があるのでしょうか?

これは必要ありません。ConditionBeanで利用するEntityはすべて
「generate.bat」で生成されたテーブルと1対1のEntityクラスだけで
データハンドリングします。


もし、よろしければこちらのExampleを参考にされると良いかと思います。

// SVNリポジトリのURL
https://www.seasar.org/svn/sandbox/dbflute/trunk/dbflute-basic-example

H2データベースを組み込みで利用していますので、チェックアウトして頂くだけで
DBFluteで生成されたクラスのExampleがJUnitで実行可能です。

2008/3/24  <[E-MAIL ADDRESS DELETED]>:
>
>  久保さん
>
> お返事ありがとうございます。加勢です。
> もう一点、複数テーブルからの取得について質問がございます。
>
> > DBfluteのConditonBeanクラスから、複数テーブルの項目を取得する事は可能なのか?
> >「複数テーブルの項目の取得」という言葉に対して厳密な答えではないかも
> >しれませんが、FK制約が付与されている関連テーブルに関して可能です。
> >
> >// 会員一覧で、親テーブルの会員ステータスを結合して取得
> >MemberCB cb = new MemberCB();
> >cb.setupSelect_MemberStatus(); // ★
> >List<Member> memberList = memberBhv.selectList(cb);
> >for (Member member : memberList) {
> > MemberStatus memberStatus = member.getMemberStatus();
> > ... = memberStatus.getXxx();
> >}
>
> 上記の方法で、データを取得した場合、Entityクラスはどのように用意すれば良いのでしょうか?
>
> DBfluteではテーブル一つに対して、同じプロパティを持つEntityが生成されるのではないのですか?
> 複数のテーブルからデータを取得する場合、格納先のEntityクラスと取得した項目の齟齬がでると
> 思うのですがこの認識は誤りでしょうか?(実は複数テーブルからの取得でここが一番の疑問でした。)
>
> Sqlファイルからデータを取得するときに、対応する項目のEntityクラスを生成するように
> ConditonBeanを利用する場合も対応するEntityクラスを作成する必要があるのでしょうか?
>
> 何卒よろしく御願いいたします。
>
>
>
>
> ________________________________
> MSNミュージックとEMI Artistsが共同開催するオーディション SCHOOL OF SCHOOL
> http://music.jp.msn.com/
> _______________________________________________
>  Seasar-user mailing list
>  [E-MAIL ADDRESS DELETED]
>  https://ml.seasar.org/mailman/listinfo/seasar-user
>
>


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