2

我有这个对象图,我想映射:

  • 抽象帐户(用户名,密码,...)
    • 抽象客户(购物车、订单、角色)
      • 个人客户(用户数据)
      • CorporateCustomer(不同的用户数据、公司数据)
    • 管理员(管理员角色)

如何将其映射到一张表?(我知道如何使用只有 1 级深度的实体层次结构来做到这一点,就像在文档中一样,但这是不同的)。

有人有想法吗?我在 http://groups.google.com/group/nhusers/browse_frm/thread/7a85cba0048c18d8?hl=en中提出了同样的问题,但到目前为止还没有收到有用的答案。

4

2 回答 2

2

据我所知,它应该与一层深层次结构没有什么不同。试试这个:

<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 回答
2

嵌套子类违反了 xml 模式,所以我的猜测是,它不会起作用。我可能还必须嵌套鉴别器声明,这似乎也很骇人听闻。

并将其映射出来...我传递了一个抽象类的鉴别器,因为抽象类无法实例化,所以它永远无法使用。似乎也错了。

但你是对的,我会尝试一段时间。现在对我来说,让客户拥有一个帐户而不是一个帐户似乎是一个更好的主意。

谢谢!

于 2009-01-05T23:59:49.940 回答