[seasar-dotnet:1413] Re: 同一テーブルを複数回にわたって結合する
kubo
[E-MAIL ADDRESS DELETED]
2009年 7月 30日 (木) 21:24:35 JST
久保(jflute)です。
八鍬さん、こんばんは
> 一つのテーブルに対して、同一テーブルを複数回にわたって
こちらの意味の確認ですが、
例えば、
「会員」テーブルと「会員ステータス」テーブルがあったとして、
「会員」テーブルに「現在会員ステータスコード」と
「前回会員ステータスコード」というカラムがあって、
それぞれのコード経由で「会員ステータス」を取得したい
ということでよろしいでしょうか?
(一つのテーブルから同じテーブルに対して複数のFKがある)
MemberCB cb = new MemberCB();
cb.setupSelect_MemberStatusBy現在();
cb.setupSelect_MemberStatusBy前回();
...
Member member = memberBhv.selectEntity(cb);
... = member.getMemberStatusBy現在();
... = member.getMemberStatusBy前回();
この場合FK制約が貼られていれば、上記の例のように
「テーブル名Byカラム名」という識別子でそれぞれの
リレーション毎にメソッドが作成され、それぞれ別個に
扱うことができます。
なので、FK制約が貼られていればそういったメソッドが
生成されているはずです。
> classificationDefinitionMapを使用することも検討したのですが、
> エンドユーザが保守できる要件をみたせなくなってしまうため、
> 見送った経緯があります。
具体的にどういった要件だったのか教えて頂けますでしょうか?
ぜひ参考にしたいと思いますので、差し支えの無い範囲でいいので。
2009/7/30 Tatsuya Yakuwa <[E-MAIL ADDRESS DELETED]>:
> お世話になっております。
> 八鍬(やくわ)と申します。
>
> DbFluteのConditionBeanについて、おたずねしたいのですが。。。
>
> 外出しSQLを使用せず、ConditionBeanで
> 1つのテーブルに対して、同一テーブルを複数回にわたって
> 、結合することは可能でしょうか?
>
> 例えば、名称マスタや区分マスタなどのコード→名称のようなテーブルから、
> 名称を取得するようなケースです。
>
> http://dbflute.sandbox.seasar.org/contents/condition-bean/basic.html
> のDBFluteBasicExampleを参考にしていたのですが、
> 同じようなケースが見当たらなかったので。。。
>
>
> --
> /*
> SELECT M.kojinID
> ,M.member_no
> ,M.section_cd
> ,M.gender_cd
> ,C1.code_nm as gender_nm
> ,M.post_cd
> ,C2.code_nm as post_nm
> FROM Pre_Member_Info M
> left outer join dbo.Com_Code C1
> on (C1.codesb_cd = '0008'
> and C1.code_val = gender_cd)
> left outer join dbo.Com_Code C2
> on (C2.code_val = post_cd
> and C2.codesb_cd='0026' )
> */
> もしくは
> --
> /*
> SELECT kojinID
> ,member_no
> ,section_cd
> ,(select code_nm
> from dbo.Com_Code
> where codesb_cd='0008'
> and code_val = gender_cd ) as gender_nm
> ,(select code_nm
> from dbo.Com_Code
> where codesb_cd='0026'
> and code_val = post_cd ) as post_nm
>
> FROM Pre_Member_Info
>
> */
>
> のようなSQLです。
>
> ちなみに、
> classificationDefinitionMapを使用することも検討したのですが、
> エンドユーザが保守できる要件をみたせなくなってしまうため、
> 見送った経緯があります。
>
>
> 以上よろしくお願いいたします。
> --
> *----**===**----**===**----**===**----**===**----*
> 株式会社 エム・エス・アイ
> システム部 八鍬 達也
> Add:山形市松栄1-5-7
> Tel:023-647-3966 Fax:023-647-3967
> E-mail:[E-MAIL ADDRESS DELETED]
> ☆ ★ ☆ 社員ブログ更新中!!! ☆ ★ ☆
> http://www.msi-net.co.jp/blog/index.html
> *----**===**----**===**----**===**----**===**----*
> _______________________________________________
> seasar-dotnet mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>
seasar-dotnet メーリングリストの案内