[seasar-dotnet:1421] Re: 外部キーに区分値を使用する

kubo [E-MAIL ADDRESS DELETED]
2009年 8月 1日 (土) 14:52:21 JST


久保です。

> $$foreignAlias$$.codesb_cd = /*EVAL(hogeDllName.hogeClass.constAAAA)*/
> みたいなことができたら、fixedConditionがより便利になる気がします。
そこまでおおげさじゃないもので恐縮ですが、
「/*$cls(CodeSb.Gender)*/null」というように指定できるように
してみました。codeで指定された値を参照しにいきます。
もしよければ、
http://dbflute.sandbox.seasar.org/contents/migration/basic.html
の「DBFlute.NET-0.8.9.3-RC1」をお試し下さい。

> ; fixedSuffix = AsValidGender
細かいですが、Blog上の例のValidは「有効な(Address)」という意味を
含んでいますので、今回は「AsGender」で良いかと思います。

2009/8/1 Tatsuya Yakuwa <[E-MAIL ADDRESS DELETED]>:
> 八鍬です。
>
> 久保様、回答ありがとうございます。
>
>> fixedConditionのBind変数機能は利用せずに、固定でGenderであることを指定したいけど、
>> 「0008」というコードがclassificationDefinitionMap上と二手に分かれてしまうので、
>> fixedConditionの記述の中でclassificationDefinitionMap上のコードを抽象的に
>> 参照したいということですね???
>
> おっしゃる通りです。
>
>> 申し訳ありませんが現状、そういう機能は用意されていません。
>> 例えば、/*$cls(CodeSb.Gender)*/というように書くと、classificationDefinitionMap上の
>> CodeSb区分値のGenderのcode値が展開されるとかであれば良いですかね!?
>
> そうですね。
>
> 個人的には、ソース自動生成時に強制的にコードそのものとして解釈するものが
> あると便利だと考えてます。
> Javascriptのeval()のようなニュアンスです。
>
> 参照するdll(Jar)に定数を定義して、
> $$foreignAlias$$.codesb_cd = /*EVAL(hogeDllName.hogeClass.constAAAA)*/
> みたいなことができたら、fixedConditionがより便利になる気がします。
> 引数にした場合、コーダーに定義すみの定数を使わせる場合は、
> 間違えないが起こらないともかぎらないので。。。
>
> 今回は、
> $$foreignAlias$$.codesb_cd = /*CodeSbGender(String)*/Null
> の方法で、実装したいと思います。
>
>> これは、「区分値を識別する区分値(CDef.CodeSb)」ということですね?
>
> そうなります。わかりにくい例で、すいませんでした。
>
> 以上です。
> ありがとうございました。
>
>
> On Sat, 01 Aug 2009 12:53:19 +0900, kubo <[E-MAIL ADDRESS DELETED]> wrote:
>
>> 久保(jflute)です。
>>
>>>> $$foreignAlias$$.codesb_cd = CDef.CodeSb.Gender.Code(正しく動作しません。)
>>>> として、CDef.CodeSb.Gender.Codeを参照するような記述は可能でしょうか??
>>>
>>> すいません「CDef.CodeSb.Gender.Codeを参照するような記述」というのが
>>> 具体的にどういうものをイメージされていますでしょうか?
>>
>> fixedConditionのBind変数機能は利用せずに、固定でGenderであることを指定したいけど、
>> 「0008」というコードがclassificationDefinitionMap上と二手に分かれてしまうので、
>> fixedConditionの記述の中でclassificationDefinitionMap上のコードを抽象的に
>> 参照したいということですね???
>>
>> 申し訳ありませんが現状、そういう機能は用意されていません。
>> 例えば、/*$cls(CodeSb.Gender)*/というように書くと、classificationDefinitionMap上の
>> CodeSb区分値のGenderのcode値が展開されるとかであれば良いですかね!?
>>
>>>> CDef.CodeSb.Gender.Code
>>>
>>> ちなみにclassificaitonDefinitionってどんな感じで定義されていますか?
>>> 恐らく「CDef.Gender.Femail.Code」という感じになるはずですが...
>>
>> これは、「区分値を識別する区分値(CDef.CodeSb)」ということですね?
>> ということなら、自分が勘違いしましたので気にしないで下さい。
>>
>> 2009/8/1 kubo <[E-MAIL ADDRESS DELETED]>:
>>>
>>> 久保(jflute)です。
>>>
>>> 八鍬さん、こんにちは
>>>
>>>> $$foreignAlias$$.codesb_cd = CDef.CodeSb.Gender.Code(正しく動作しません。)
>>>> として、CDef.CodeSb.Gender.Codeを参照するような記述は可能でしょうか??
>>>
>>> すいません「CDef.CodeSb.Gender.Codeを参照するような記述」というのが
>>> 具体的にどういうものをイメージされていますでしょうか?
>>>
>>>> $$foreignAlias$$.codesb_cd = /*CodeSbGender(String)*/Null
>>>
>>> と書いた場合は、SetupSelect_ComCodeAsValidGender()メソッドの
>>> 引数が「String CodeSbGender」になるので、
>>> プログラムからは、
>>> cb.SetupSelect_ComCodeAsValidGender(CDef.CodeSb.Gender.Code);
>>> というように指定して下さい。
>>>
>>>> $$foreignAlias$$.codesb_cd = CDef.CodeSb.Gender.Code(正しく動作しません。)
>>>
>>> とは書けないですね。そこはSQLの部分なのでその記述は解決されません。
>>> あえて書くなら
>>> 「$$foreignAlias$$.codesb_cd = /*CodeSbGender(CDef.CodeSb.Gender)*/」
>>> という感じかもしれませんが、実行時に指定されたClassificationの
>>> Code値を使うようには解決されないような気がします。
>>>
>>>> CDef.CodeSb.Gender.Code
>>>
>>> ちなみにclassificaitonDefinitionってどんな感じで定義されていますか?
>>> 恐らく「CDef.Gender.Femail.Code」という感じになるはずですが...
>>>
>>> 2009/8/1 Tatsuya Yakuwa <[E-MAIL ADDRESS DELETED]>:
>>>>
>>>> お世話になっております。
>>>> 八鍬(やくわ)と申します。
>>>>
>>>> DbFluteのadditionalForeignKeyについて、おたずねしたいのですが。。。
>>>>
>>>> fixedConditionにおいて、引数を定義する箇所で、
>>>> classificationDefinitionで定義した区分値を参照する記述は可能でしょうか?
>>>>
>>>> /*
>>>> #additionalForeignKey
>>>> ...
>>>>        ; FK_Pre_Member_Info_Com_Code_Gender = map:{
>>>>            ; localTableName  = Pre_Member_Info ; foreignTableName =
>>>> Com_Code
>>>>            ; localColumnName = gender_cd ; foreignColumnName = code_val
>>>>         ; fixedCondition =
>>>>     $$foreignAlias$$.codesb_cd = /*CodeSbGender(String)*/Null
>>>>     #$$foreignAlias$$.codesb_cd = '0008'
>>>>            ; fixedSuffix = AsValidGender
>>>>        }
>>>> */
>>>> (CDef.CodeSb.Gender.Codeについては、classificationDefinitionで定義済です。)
>>>>
>>>> 上記の
>>>> $$foreignAlias$$.codesb_cd = /*CodeSbGender(String)*/Null
>>>>>>>> $$foreignAlias$$.codesb_cd = CDef.CodeSb.Gender.Code(正しく動作しません。)
>>>> として、CDef.CodeSb.Gender.Codeを参照するような記述は可能でしょうか??
>>>>
>>>> 以上です。
>>>> よろしくお願いします。
>>>>
>>>> --
>>>> 八鍬 達也
>>>> _______________________________________________
>>>> seasar-dotnet mailing list
>>>> [E-MAIL ADDRESS DELETED]
>>>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>>>>
>>>
>> _______________________________________________
>> seasar-dotnet mailing list
>> [E-MAIL ADDRESS DELETED]
>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>>
>> __________ Information from ESET NOD32 Antivirus, version of virus
>> signature database 4295 (20090731) __________
>>
>> The message was checked by ESET NOD32 Antivirus.
>>
>> http://www.eset.com
>>
>>
>>
>
>
>
> --
> *----**===**----**===**----**===**----**===**----*
>  株式会社 エム・エス・アイ
>  システム部 八鍬 達也
>  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 メーリングリストの案内