[seasar-dotnet:1831] Re: [DBFlute.NET]業務的one-to-oneな条件に他テーブルのカラム値指定

fp [E-MAIL ADDRESS DELETED]
2010年 10月 7日 (木) 23:50:26 JST


fpです。

久保さん、こんばんは

早速の御返事有難うございます。

とりあえず「A」ができれば問題ありません。

すぐできるに越したことは無いですが、明日・明後日に
対応頂こうなどとは思っておりませんでした。

宜しくお願いします。


fixedCondition とは別に ExistsReferrer, DerivedReferrer
等のサブクエリについても同じ意味合いのニーズはあります。

ColumnQuery のようにコールバック delegate 等で
対象カラムを指定できるといいのですが。




(2010/10/07 23:04), kubo wrote:
> 久保(jflute)です。
> 
> fpさん、こんばんは
> 
> なるほど、日付が外部から与える値ではなく、
> 別のリレーションのテーブルのカラムであると。
> 
> 現状の fixedCondition では、そもそも local, foreign 以外の
> テーブルのカラムを指定することができないので、
> 実現できないはずです。
> 無理矢理、dfrelation_1.ORDER_DATE というように、
> 発行させるSQLとつじつまの合うエリアス名を付ければ
> できるかもしれませんが、DB変更など何かの拍子に
> 動かなくなります。
> 
> やるなら、例えば仮に以下のように、
> 
> and $$foreignAlias$$.VALID_END_DATE
>         >= $$rel(order)$$.ORDER_DATE
> 
> order というリレーションが指定されていることが前提で、
> 実行時に適切なエリアス名に変換されるようにする、
> というところですが、ややこしい点が一つあります。
> このままだと、Item を基点にした場合に利用できない
> リレーションになってしまいます。
> (OrderItemCB を new することが前提になってしまう)
> 
> A. 割り切って専用のリレーションにする
>    (Item基点で利用したい場合は、別途リレーションを定義)
> B. ハイブリッド方式
>    (dfprop の設定でIFコメントみたいなのを使えるように)
> 
> Aは、その分例外処理をしっかり。
> リレーションの名前は任意でdfpropにて付けられるので、
> OrderDateを使ったリレーションを、例えば
> 「FK_XXX_AS_ORDER_DATE」とするとか。
> Bは、そもそもどうやってハイブリッドにしようか。
> (setupSelectの引数の型とか色々考えると良い手がない...)
> 
> 現実的にはとりあえず「A」ができれば、fpさんの要件は
> 満たせるのかなと思いますが、どうでしょうか?
> (そもそもBは、Aの後付けでも良いわけだし)
> 
> また、明日・明後日できないと困る、
> というような話でしょうか?
> 
> 2010/10/7 fp<[E-MAIL ADDRESS DELETED]>:
>> お世話になります。fpと申します。
>>
>> DBFlute の「業務的one-to-one」の fixedCondition に
>> 親の親のテーブルのカラム値を与えたい、という場合
>> 皆さんはどう解決されているのでしょうか?
>>
>> 例として、
>>
>> Order (1) ->  OrderItem (n) ->  Item (1) ->  ItemPrice (n ,but BizOneToOne)
>>
>> な関連で
>>
>> OrderItem の List を取得にする場合に
>> Order.OrderDate で一意に特定される ItemPrice を
>> 一緒に取得する。
>>
>> 業務的にはかなり一般的な状況だと思うのですが。
>>
>> fixedCondition というよりは、サブクエリを含む
>> 結合処理全般に絡む話ですが。
>>
>> OutsideSQL でやるしかないでしょうか?
>> _______________________________________________
>> 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



seasar-dotnet メーリングリストの案内