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

kubo [E-MAIL ADDRESS DELETED]
2008年 3月 23日 (日) 19:21:25 JST


久保です。

加勢さん、こんばんは

> Bhvクラスにinsertメソッド等が自動生成されない場合
こちらは、該当テーブルにPrimaryKey制約が存在しない場合に
そのようになります。(insert/update/deleteができなくなる)
http://dbflute.sandbox.seasar.org/contents/introduction/infra.html
が参考になります。
(厳密にはinsertのみオプションで可能です)

PrimaryKey制約を付けないことに大きな理由がなければ、
代理キー(連番)でも良いのでPrimaryKeyを付けることをお奨めします。


> 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();
}

// サンプルERD
http://dbflute.sandbox.seasar.org/view/exampledb/index.html?goto=1

// 参考
http://gihyo.jp/dev/feature/01/dbflute/0004

FK制約が貼られていない場合は、setupSelect_Xxx()メソッドは
生成されません。プロジェクトの制約上どうしてもFK制約を
付与することができないような場合は、additionalForeignKeyという
機能で明示的に(手動で)関連を指定することが可能です。


とりあえず説明させて頂きましたが回答が足りてますでしょうか?
もし、わからないことがあったらまた聞いて下さい。

2008/3/23  <[E-MAIL ADDRESS DELETED]>:
>
>  お世話になります。加勢と申します。
>
>  DBfluteについて2点ほど質問があります。
>
>  質問①
>  DBfluteのクラスの自動生成についてBhvクラスにinsertメソッド等が自動生成されない場合が
>  あります。これは、DBに作成したテーブルが適切ではない(Fキーの持たせ方、テーブルの命
>  名規約等が間違っている)場合に、適切なメソッドが生成されないと断言してよろしいのでしょうか?
>
>  質問②
>  DBfluteのConditonBeanクラスから、複数テーブルの項目を取得する事は可能なのか?
>  複数テーブルから基点となるテーブルの項目を取得する方法は、判りましたが複数テーブルの
>  項目を取得する方法がこちらで調べた限り把握できません。(調べ方が悪いのかもしれませんが)
>  現在、こちらの認識としては、複数テーブルの項目取得はSQLファイルを利用するという認識ですが
>  これは正しいでしょうか?
>
>  乱文失礼いたします。
>
>  何卒、お答えいただけますでしょうか?
>
>
>
>
>
> ________________________________
> マイクロソフトの最新次世代ブラウザIE7にMSN版ならではの便利な機能をプラス http://promotion.msn.co.jp/ie7/
> _______________________________________________
>  Seasar-user mailing list
>  [E-MAIL ADDRESS DELETED]
>  https://ml.seasar.org/mailman/listinfo/seasar-user
>
>


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