2

私はこのオブジェクトグラフを持っています、私はマッピングしたい:

  • 抽象的なアカウント (ユーザー名、パスワードなど)
    • 抽象的な顧客 (ショッピングカート、注文、役割)
      • IndividualCustomer (ユーザー データ)
      • CorporateCustomer (異なるユーザー データ、会社データ)
    • 管理者 (管理者ロール)

これを 1 つのテーブルに対してどのようにマッピングできますか? (ドキュメントのように、深さ 1 レベルのみのエンティティ階層でこれを行う方法は知っていますが、これは異なります)。

誰にもアイデアがありますか?http://groups.google.com/group/nhusers/browse_frm/thread/7a85cba0048c18d8?hl=enで同じことを尋ねました が、これまでのところ有用な回答は得られていません。

4

2 に答える 2

2

サブクラスのネストはxmlスキーマに反するため、機能しないと思います。おそらく、ディスクリミネーター宣言もネストする必要がありますが、これもハックのようです。

そしてそれをフラットにマッピングします...抽象クラスをインスタンス化できないため、使用できない抽象クラスの識別子を渡します。も間違っているようです。

しかし、あなたは正しいです、私はしばらくそれを試してみます。今のところ、顧客にアカウントを持たせるのではなく、アカウントを持たせる方が良いと思います.

ありがとう!

于 2009-01-05T23:59:49.940 に答える
2

私が見る限り、それは 1 レベルの深さの階層と変わらないはずです。これを試して:

<hibernate-mapping> 
<class                                                     
    name="Account" 
    table="..." > 
    <property .../> 
        ... 
    <subclass                                              
        name="Customer" > 
        <property ... "/> 
        ... 
    </subclass> 

    <subclass                                              
        name="IndividualCustomer" > 
        <property ... "/> 
        ... 
    </subclass> 
    ... 
</class> 

ここには NHibernate がありませんが、確認する必要がありますが、動作するはずです。そうでない場合は、サブクラス要素をネストすることもできます。

于 2009-01-05T21:31:48.243 に答える