[Seasar-user:15234] Re: [DBFlute] Viewに対してadditionalForeignKeyMapの設定

kubo [E-MAIL ADDRESS DELETED]
2008年 7月 31日 (木) 14:07:43 JST


久保(jflute)です。

> 3.additionalForeignKeyMapに以下を追加
>    ; FK_MEMBER_VIEW = map:{
>        ; localTableName  = MEMBER_WITHDRAWAL   ; foreignTableName  =
> MEMBER_VIEW
>        ; localColumnName = MEMBER_ID ; foreignColumnName = MEMBER_ID
>    }

すいません、こちらも「one-to-one」になりますので、
loadXxx()は生成されません。
(MEMBER_WITHDRAWALのMEMBER_IDがPKなため)

かわりにMemberViewCBに
setupSelect_MemberWithdrawalAsOne()
が生成されていると思います。


2008/7/31 西山 はじめ <[E-MAIL ADDRESS DELETED]>:
> お世話になっております。西山です。
>
> 追加ですが、以下の設定ですとload~メソッドが生成されません。
>
> 1.replace-schemaに以下を追加
> CREATE VIEW MEMBER_VIEW AS
> SELECT * FROM MEMBER;
>
> 2.additionalPrimaryKeyMapに以下を追加
>    ; PK_MEMBER_VIEW = map:{
>        ; tableName = MEMBER_VIEW ; columnName = MEMBER_ID
>    }
> 3.additionalForeignKeyMapに以下を追加
>    ; FK_MEMBER_VIEW = map:{
>        ; localTableName  = MEMBER_WITHDRAWAL   ; foreignTableName  =
> MEMBER_VIEW
>        ; localColumnName = MEMBER_ID ; foreignColumnName = MEMBER_ID
>    }
> 4.replace-schemaから以下を削除
> ALTER TABLE MEMBER_WITHDRAWAL ADD CONSTRAINT FK_MEMBER_WITHDRAWAL_MEMBER
>        FOREIGN KEY (MEMBER_ID) REFERENCES MEMBER (MEMBER_ID) ;
>
> 上記の設定後、generate.batを実行しましたが、MemberViewBhvに はload~はありませんでした。
> MemberWithDrowalCBには、setupSelect_MemberViewメソッドが存在 します。
>
>> ; FK_SUMMARY_PRODUCT_PRODUCT_STATUS = map:{
>>>
>>>   ; localTableName  = PRODUCT_STATUS    ; foreignTableName  =
>>> SUMMARY_PRODUCT
>>>   ; localColumnName = PRODUCT_STATUS_CODE ; foreignColumnName  =
>>> PRODUCT_STATUS_CODE
>>> }
>
> すいません。こちらはそもそもPKからFKを張ることなんてないので こちらは無視していただいて結構です。
>
> 以上よろしくお願いいたします。
>
>
>> は、自分もやってみましたが確かに生成されません。
>> この場合はlocalColumnNameのPRODUCT_STATUS_CODEが
>> PrimaryKeyのため、OneToOneのリレーションと判断されて
>> 生成されていないかもしれません。(調査中)
>> (OneToOneの場合はloadXxx()はそもそも生成されません)
>>
>>
>> 2008/7/31 西山 はじめ <[E-MAIL ADDRESS DELETED]>:
>>>
>>> お世話になっております。西山です。
>>>
>>> 0.7.7を使用してみたのですが、やはりViewだとload~メソッドが 生成されません。
>>>
>>> exampleの方も、localがView で foreignがTableとなっています。
>>> localがTable、foreginがViewに書き換えてみましたが、load~メ ソッドは生成されませんでした。
>>>
>>> 変更したのは以下の内容です。
>>>
>>> ; FK_SUMMARY_PRODUCT_PRODUCT_STATUS = map:{
>>>   ; localTableName  = PRODUCT_STATUS    ; foreignTableName  =
>>> SUMMARY_PRODUCT
>>>   ; localColumnName = PRODUCT_STATUS_CODE ; foreignColumnName  =
>>> PRODUCT_STATUS_CODE
>>> }
>>>
>>> 以上お手数ですがよろしくお願いいたします。
>>>
>>> [2008/07/30 22:53] kubo さんは書きました。:
>>>>
>>>> 久保(jflute)です。
>>>>
>>>>> 出来れば欲しいです。
>>>>>
>>>>> 今、二つのアプリケーションから利用されるDB(片方は、参照Only
>>>>> のマスタ系テーブルのみ利用)があります。
>>>>> 過去の遺産の為か、テーブル名・カラム名とも暗号となっているた
>>>>> め、Viewを利用してわかりやすくしようとしています。
>>>>> テーブル自体を変更できれば楽なのですが、今回手を加えないアプ
>>>>> リケーションの方でマスタ系メンテナンスを行っているため、変更
>>>>> できません。
>>>>
>>>> http://dbflute.sandbox.seasar.org/download/dbflute/dbflute-0.7.7.zip
>>>> にて対応しました。確認お願いできますでしょうか?
>>>>
>>>> dbflute-basic-exampleにて、
>>>> 実際にVIEWを生成してadditionalPrimaryKeyMap.dfpropで
>>>> 定義をしております。こちら参考にして下さい。
>>>>
>>>> 2008/7/30 西山 はじめ <[E-MAIL ADDRESS DELETED]>:
>>>>>
>>>>> お世話になっております。西山です。
>>>>>
>>>>>> 取り急ぎお答え致します。
>>>>>> こちら、VIEWに「PK」の情報がないため、
>>>>>> ViewのBehaviorにloadXxx()が設定されません。
>>>>>
>>>>> 了解いたしました。PKの情報を利用しているのですね。
>>>>>
>>>>>> #
>>>>>> # additionalPrimaryKeyMapみたいな設定があった方が
>>>>>> # よいですかね。。。
>>>>>> #
>>>>>
>>>>> 出来れば欲しいです。
>>>>>
>>>>> 今、二つのアプリケーションから利用されるDB(片方は、参照Only
>>>>> のマスタ系テーブルのみ利用)があります。
>>>>> 過去の遺産の為か、テーブル名・カラム名とも暗号となっているた
>>>>> め、Viewを利用してわかりやすくしようとしています。
>>>>> テーブル自体を変更できれば楽なのですが、今回手を加えないアプ
>>>>> リケーションの方でマスタ系メンテナンスを行っているため、変更
>>>>> できません。
>>>>>
>>>>> 回避手段としては、常にlocal側からJoinするか、OutsideSQLで可
>>>>> 能ですので、必須ではありません。
>>>>>
>>>>> ですが、Viewでもテーブルと同じように利用できれば非常に有り難
>>>>> いです。
>>>>>
>>>>> お忙しいところ申し訳ありませんが、ご検討お願いできないでしょ
>>>>> うか。
>>>>>
>>>>>> 2008/7/30 西山 はじめ <[E-MAIL ADDRESS DELETED]>:
>>>>>>>
>>>>>>> お世話になっております。西山と申します。
>>>>>>>
>>>>>>> dbflute_exampleを使用し、以下の設定を追加しました。
>>>>>>>
>>>>>>> Viewを作成し、以下のようなFKの設定をしましたが、ForeignTable
>>>>>>> 側にload~メソッドが生成されません。
>>>>>>> LocalTable側には、setup~メソッドが生成されています。
>>>>>>>
>>>>>>> # replace-schema
>>>>>>>
>>>>>>> CREATE VIEW MEMVER_VIEW AS
>>>>>>> SELECT * FROM MEMBER;
>>>>>>>
>>>>>>> # additionalForeignKeyMap.dfprop
>>>>>>>
>>>>>>> ; FK_MEMVER_VIEW_LOGIN = map:{
>>>>>>>     ; localTableName  = MEMBER_LOGIN    ;
>>>>>>> foreignTableName  = MEMVER_VIEW
>>>>>>>     ; localColumnName = MEMBER_ID ; foreignColumnName =
>>>>>>> MEMBER_ID
>>>>>>> }
>>>>>>>
>>>>>>> 環境は以下のとおりです。
>>>>>>>
>>>>>>> DBFlute:0.7.6
>>>>>>> DB:h2database
>>>>>>> dbflute_example使用
>>>>>>>
>>>>>>> Viewでの制限でしょうか?
>>>>>>> 以上よろしくお願いいたします。
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>>>>>>> 株式会社フジミック システム開発センター ソフト開発2部
>>>>>>> 西山 創
>>>>>>> [E-mail]:[E-MAIL ADDRESS DELETED]
>>>>>>>
>>>>>>> 〒140-0002 品川区東品川3-32-42 フジテレビ別館7F
>>>>>>> [TEL]:03-5495-1060
>>>>>>> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Seasar-user mailing list
>>>>>>> [E-MAIL ADDRESS DELETED]
>>>>>>> https://ml.seasar.org/mailman/listinfo/seasar-user
>>>>>>>
>>>>>>
>>>>> --
>>>>> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>>>>> 株式会社フジミック システム開発センター ソフト開発2部
>>>>>  西山 創
>>>>> [E-mail]:[E-MAIL ADDRESS DELETED]
>>>>>
>>>>> 〒140-0002 品川区東品川3-32-42 フジテレビ別館7F
>>>>> [TEL]:03-5495-1060
>>>>> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Seasar-user mailing list
>>>>> [E-MAIL ADDRESS DELETED]
>>>>> https://ml.seasar.org/mailman/listinfo/seasar-user
>>>>>
>>>> _______________________________________________
>>>> Seasar-user mailing list
>>>> [E-MAIL ADDRESS DELETED]
>>>> https://ml.seasar.org/mailman/listinfo/seasar-user
>>>>
>>>>
>>>>
>>>
>>> --
>>> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>>> 株式会社フジミック システム開発センター ソフト開発2部
>>>  西山 創
>>> [E-mail]:[E-MAIL ADDRESS DELETED]
>>>
>>> 〒140-0002 品川区東品川3-32-42 フジテレビ別館7F
>>> [TEL]:03-5495-1060
>>> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>>>
>>> _______________________________________________
>>> Seasar-user mailing list
>>> [E-MAIL ADDRESS DELETED]
>>> https://ml.seasar.org/mailman/listinfo/seasar-user
>>>
>> _______________________________________________
>> Seasar-user mailing list
>> [E-MAIL ADDRESS DELETED]
>> https://ml.seasar.org/mailman/listinfo/seasar-user
>>
>>
>>
>
>
> --
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> 株式会社フジミック システム開発センター ソフト開発2部
>  西山 創
> [E-mail]:[E-MAIL ADDRESS DELETED]
>
> 〒140-0002 品川区東品川3-32-42 フジテレビ別館7F
> [TEL]:03-5495-1060
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>


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