[seasar-dotnet:1086] Re: DBFlute による親データの取得について

kubo [E-MAIL ADDRESS DELETED]
2008年 10月 23日 (木) 22:31:37 JST


久保(jflute)です。

>> ちなみに「コード:名称値」を持ったテーブルからN:1マッピングをする際にも
>> 外部キーを付けるしか方法はないのでしょうか?
>> (今日それで格闘してました・・・)

さっき日比谷線のホームで「あれはどういうことだったのかなぁ」
と考えててふと思ったのですが、
「実際のFK制約がなくてもSetupSelectで取得したい」
ということでしょうか?
それで、実際のFK制約がない関連でExEntityに手動でRELKEYを
付与して試していた、という話につながりますでしょうか?

もし、そうであれば、additionalForeignKeyMap.dfpropにて
DBFluteで疑似のFK情報を定義することで可能です。
http://d.hatena.ne.jp/jflute/20080709/1215624049


#
# はずしてたらすごい恥ずかしい....
#

2008/10/23 kubo <[E-MAIL ADDRESS DELETED]>:
> 久保(jflute)です。
>
>> すいません。自己解決しました。
>>
>> 落ちる方はExEntityに「Relno,Relkeys」属性のついたプロパティがあり、
>> 削除したら正常に動きました。
>
> おお、了解です。
> ちょっとドキドキしてました。
>
>> (N:1マッピングをやろうと追加したのですが、DBFluteでは未サポートという
>> Exceptionが出たため中止したものの、プロパティは消してませんでした)
>
> N:1ではなく、1:Nってことでしょうか?
> (つまりone-to-many)
> もし、その場合はDBFluteはBehaviorのLoadReferrerを使ってN側を取得します。
>
>> ちなみに「コード:名称値」を持ったテーブルからN:1マッピングをする際にも
>> 外部キーを付けるしか方法はないのでしょうか?
>> (今日それで格闘してました・・・)
>
> すいません、これちょっとよくわかりませんでした。
> 「コード:名称値」を持ったテーブルとは、
> 例えば、ExampleDB
> http://dbflute.sandbox.seasar.org/view/exampledb/EARoot/EA1.html
> の会員ステータスのようなテーブルのことでしょうか?
> (そのテーブルからN:1マッピングをする、とは!?!?)
>
> 2008/10/23 Nakai <[E-MAIL ADDRESS DELETED]>:
>> 久保さん
>>
>> すいません。自己解決しました。
>>
>> 落ちる方はExEntityに「Relno,Relkeys」属性のついたプロパティがあり、
>> 削除したら正常に動きました。
>>
>> (N:1マッピングをやろうと追加したのですが、DBFluteでは未サポートという
>> Exceptionが出たため中止したものの、プロパティは消してませんでした)
>>
>> お騒がせして申し訳ありませんでした。
>>
>> ちなみに「コード:名称値」を持ったテーブルからN:1マッピングをする際にも
>> 外部キーを付けるしか方法はないのでしょうか?
>> (今日それで格闘してました・・・)
>>
>>
>> Nakai <[E-MAIL ADDRESS DELETED]> wrote:
>>
>>> 久保さん
>>>
>>> 成功している方はAの上にはいません。
>>> 失敗する方はさらに親がいるケースといないケース両方あります。
>>> 規則性がまだ見えていない状況です。
>>> 引き続き調べてみます。
>>>
>>> ※Logに出ているSQLは「A」も「B」も正常に流れます。
>>>
>>>
>>>
>>> kubo <[E-MAIL ADDRESS DELETED]> wrote:
>>>
>>> > 久保です。
>>> >
>>> 中井さん、こんばんは
>>> >
>>> AとA1の関係と、BとB1の関係に何か特徴的な違いはありますでしょうか?
>>> > 例えば、「A」にはさらに親がいて、「B」には親がいないとか。
>>> >
>>> 2008/10/23 Nakai <[E-MAIL ADDRESS DELETED]>:
>>> > > いつもお世話になります。
>>> > > 中井と申します。
>>> > >
>>> > > 現在、cb.SetupSelectで親テーブルのデータ取得を試みているのですが、
>>> > > 成功する親子テーブルと失敗する親子テーブルがあり悩んでいます。
>>> > >
>>> > > 例)Aテーブル(親)-A1テーブル(子)
>>> > >        Bテーブル(親)-B1テーブル(子)
>>> > >
>>> > > ↓成功
>>> > > A1tableCB cb = new A1tableCB();
>>> > > cb.SetupSelect_Atable();
>>> > > bhv.SelectList(cb);
>>> > > ↓失敗
>>> > > B1tableCB cb2 = new B1tableCB();
>>> > > cb2.SetupSelect_Btable();
>>> > > bhv2.SelectList(cb2);
>>> > >
>>> > > 共にデータは存在しています。
>>> > > 何かおかしいところはあるでしょうか?
>>> > > お忙しいところ申し訳ありませんが、
>>> > > よろしくお願いいたします。
>>> > >
>>> > > DBFlute:0.8.2
>>> > > DB:SQLServer2005
>>> > >
>>> > > 以下Exceptionです。
>>> > > -----------------------------------
>>> > >
>>> > > <System.NullReferenceException>
>>> > >
>>> > > 【Source】:Seasar.Dao
>>> > >
>>> > > 【Stacktrace】:場所 Seasar.Dao.Impl.RelationRowCreatorImpl.BuildRelationNoSuffix(IRelationPropertyType rpt)
>>> > >  場所 Seasar.Dao.Impl.RelationRowCreatorImpl.SetupNextPropertyCacheElement(RelationRowCreationResource res, IRelationPropertyType nextNextRpt)
>>> > >   場所 Seasar.Dao.Impl.RelationRowCreatorImpl.SetupNextPropertyCache(RelationRowCreationResource res, IBeanMetaData nextBmd)
>>> > >   場所 XXX.AllCommon.S2Dao.InternalRelationRowCreator.SetupPropertyCache(RelationRowCreationResource res)
>>> > > 場所 XXX\\AllCommon\\S2Dao\\S2DaoMetaDataFactoryImpl.cs:行 569
>>> > >   場所 Seasar.Dao.Impl.RelationRowCreatorImpl.CreateRelationPropertyCache(IList columnNames, IBeanMetaData bmd)
>>> > >   場所 XXX.AllCommon.S2Dao.Internal.RsHandler.InternalAbstractBeanMetaDataResultSetHandler.CreateRelationPropertyCache(IList columnNames)
>>> > > 場所 XXX\\AllCommon\\S2Dao\\Internal\\RsHandler\\InternalAbstractBeanMetaDataResultSetHandler.cs:行 50
>>> > >   場所 XXX.AllCommon.S2Dao.Internal.RsHandler.InternalBeanListMetaDataResultSetHandler.Handle(IDataReader dataReader, IList list)
>>> > >  場所 XXX\\AllCommon\\S2Dao\\Internal\\RsHandler\\InternalBeanListMetaDataResultSetHandler.cs:行 72
>>> > >   場所 XXX.AllCommon.S2Dao.Internal.RsHandler.InternalBeanGenericListMetaDataResultSetHandler.Handle(IDataReader dataReader)
>>> > > 場所 XXX\\AllCommon\\S2Dao\\Internal\\RsHandler\\InternalBeanGenericListMetaDataResultSetHandler.cs:行 27
>>> > >   場所 XXX.AllCommon.S2Dao.Internal.SqlHandler.InternalBasicSelectHandler.Execute(IDbCommand cmd, Object[] args)
>>> > >  場所 XXX\\AllCommon\\S2Dao\\Internal\\SqlHandler\\InternalBasicSelectHandler.cs:行 78"
>>> > >
>>> > > 【TargetSite】:System.String BuildRelationNoSuffix(Seasar.Dao.IRelationPropertyType)
>>> > > _______________________________________________
>>> > > 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 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 メーリングリストの案内