[Seasar-user:15128] Re: 【DBFlute】共通カラム機能を利用したコード生成について質問

柴切 卓 [E-MAIL ADDRESS DELETED]
2008年 7月 23日 (水) 19:05:20 JST


柴切です。

共通カラム機能について、だいぶわかってきました!

丁寧に回答いただき、とても助かりました。

ありがとうございました。


kubo さんは書きました:
> 久保(jflute)です。
>
>   
>> このあたりのAccessContextの定義は自分で記述しなければならないのでしょうか?
>>     
>
> AccessContextはある意味「値を運ぶための箱」
> なわけですが、汎用的な入れ物しか用意していません。
>
>     protected String accessUser;
>     protected String accessProcess;
>     protected java.util.Date accessDate;
>     protected java.sql.Timestamp accessTimestamp;
>
> 名前が付いていますが、制約はありません。
> ただの箱だと思って下さい。
>
> 上記の合致しない独自のカラムに関しては、
> AccessContextと同等のクラスをプロジェクトで
> 独自に作成して下さい。(コピーして書き換える感じでOKです)
> 要は、スレッドローカルで値を運べれば良いので、
> 必ずAccessContextを使わなければならないというわけでは
> ありません。AccessContextはあくまで汎用実装となります。
>
> その場合dfpropには
>
> ; ABCFlag= DokujiProject.DokujiContext.GetABCFlagOnThread()
>
> という感じで、フルネームで書きます。
>
>
> #
> # ただ、汎用的に使える領域を用意しても良いかもしれませんね。
> # ; ABCFlag= $$AccessContext $$.GetValueOnThread("ABCFlag")
> # みたいな感じで。。。
> #
>
>
> 2008/7/23 柴切 卓 <[E-MAIL ADDRESS DELETED]>:
>   
>> 柴切です。
>>
>> 久保さん、返信ありがとうございます。
>>
>> 参考ページを踏まえて、
>>
>> map:{
>> ; commonColumnMap = map:{
>> ; ABCFlag=CHAR
>> }
>> ; beforeInsertMap = map:{
>> ; ABCFlag= "A"
>> }
>> ; beforeUpdateMap = map:{
>> ; ABCFlag= $$AccessContext$$.GetABCFlagOnThread()
>> }
>> }
>>
>> こんな感じでcommonColumnMap.dfpropファイルを設定してコード生成するのかと
>> 思いました。
>>
>> 実際生成してみると、AccessContextクラスには
>>
>> 「String? AccessABCFlagプロパティ」 や 「String? GetABCFlagOnThread()
>> メソッド」
>>
>> は定義されていませんでした。
>>
>> このあたりのAccessContextの定義は自分で記述しなければならないのでしょうか?
>>
>> 使い方が間違っているかもしれませんが、それを含めてアドバイスいただければ
>> と思います。
>>
>> よろしくお願いします。
>>
>>
>>
>> kubo さんは書きました:
>>     
>>> 久保(jflute)です。
>>>
>>> <A>であれば、
>>>
>>> http://dbflute.sandbox.seasar.org/contents/setup/commoncolumn.html
>>>>>> 「2. AccessContext(ThreadLocal)に値を格納」
>>> を参考に
>>> リクエスト開始時にAccessContextに判断した
>>> 値を格納すればOKです。
>>>
>>> 2008/7/23 柴切 卓 <[E-MAIL ADDRESS DELETED]>:
>>>
>>>       
>>>> 柴切です。
>>>>
>>>> 久保さん、返信ありがとうございます。
>>>>
>>>> 私が質問した(1)(2)ともに、下記の<A>のような動作を行いたいと思って
>>>> います。
>>>>
>>>> AccessContextを利用する場合、(1)や(2)を格納する変数が必要ですが、
>>>> それを自動で生成することは可能でしょうか?
>>>>
>>>>
>>>> kubo さんは書きました:
>>>>
>>>>         
>>>>> 久保(jfute)です。
>>>>>
>>>>> 柴切さん、こんばんわ
>>>>>
>>>>>
>>>>>
>>>>>           
>>>>>> Update時は 'B' or 'C'
>>>>>>
>>>>>>
>>>>>>             
>>>>> この「B」なのか「C」なのかは、
>>>>> 何で決定するのでしょうか?
>>>>>
>>>>> <A>
>>>>> もし、WEB上のリクエスト時に決定するのであれば、
>>>>> AccessContextに値を格納するタイミングで「B」or「C」を
>>>>> 決定して格納すれば良いと思います。
>>>>>
>>>>> <B>
>>>>> もし、指定されたEntityの別の値で決定するのであれば、
>>>>> ちょっと強引ですが、commonColumnMap.dfpropにて
>>>>> 以下のように記述できます。
>>>>>
>>>>> XXX_FLG = $entity.isLogicalDeleteFlgFalse() ? entity.setXxx('b') :
>>>>> entity.setXxx('c')$$Semicolon$$
>>>>>
>>>>> ※ isLogicalDeleteFlgFalse()は区分値メソッド(or Extendedに作成した独自メソッド)
>>>>>
>>>>> 2008/7/22 柴切 卓 <[E-MAIL ADDRESS DELETED]>:
>>>>>
>>>>>
>>>>>           
>>>>>> 柴切と申します。
>>>>>>
>>>>>> お世話になります。
>>>>>>
>>>>>> DBflute 共通カラム機能を利用したコード生成について質問があり、メール致
>>>>>> しました。
>>>>>>
>>>>>> ドキュメントを読んでみましたが、以下の2つのUpdate動作を自動生成で実現す
>>>>>> る方法が導きだせませんでした。
>>>>>>
>>>>>> (1)Char型の共通カラムに
>>>>>>
>>>>>> Insert時は 'A'
>>>>>> Update時は 'B' or 'C'
>>>>>>
>>>>>> (2)int型の共通カラムに
>>>>>>
>>>>>> Insert時は 0
>>>>>> Update時は 1 or 2
>>>>>>
>>>>>>
>>>>>> リアルタイムな値などと同じで、自由に値を格納したいのだから
>>>>>> 「AccessContextを利用するんだな!」 とは思うのですがそこから止まってし
>>>>>> まいました。
>>>>>>
>>>>>> 理解不足の面もあるかと思いますが、是非実現方法のアドバイス等いただけたら
>>>>>> と思っております。
>>>>>>
>>>>>> よろしくお願いいたします。
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> 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
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>           
>>>> _______________________________________________
>>>> 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
>>>
>>>
>>>
>>>       
>> _______________________________________________
>> 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
>
>
>   




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