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

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


久保(jflute)です。

試しにMEMBER_WITHDRAWALを
MEMBER_LOGINに変えて同じことを試したところ、
BsMemberViewBhvにloadMemberLoginList()が
生成されました。

2008/7/31 kubo <[E-MAIL ADDRESS DELETED]>:
> 久保(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 メーリングリストの案内