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

西山 はじめ [E-MAIL ADDRESS DELETED]
2008年 7月 31日 (木) 13:31:37 JST


お世話になっております。西山です。

追加ですが、以下の設定ですと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 メーリングリストの案内