Hibernate 将不同实体映射到同一个表,始终保存为一个实体并根据上下文加载

Hibernate 将不同实体映射到同一个表,始终保存为一个实体并根据上下文加载,hibernate,mapping,domain-driven-design,Hibernate,Mapping,Domain Driven Design,我试图通过在不同的上下文中使用不同的实体来明确我的领域。在数据库中,这些实体将保存在同一个表中。我有以下类层次结构: 一个名为Person的抽象类(带有id和名称) 用户类,它扩展了Person(带有loginName、password和role) Vendor类,它还扩展Person(使用一组交易) 这样,我在销售上下文中使用Vendor类,在登录上下文中使用User类。问题是,每个人都被用户的管理上下文插入到系统中。这样,数据库中的每一行都有一个值为“user”的鉴别器列。我希望能够使用

我试图通过在不同的上下文中使用不同的实体来明确我的领域。在数据库中,这些实体将保存在同一个表中。我有以下类层次结构:

  • 一个名为Person的抽象类(带有id和名称)
  • 用户类,它扩展了Person(带有loginName、password和role)
  • Vendor类,它还扩展Person(使用一组交易)
这样,我在销售上下文中使用Vendor类,在登录上下文中使用User类。问题是,每个人都被用户的管理上下文插入到系统中。这样,数据库中的每一行都有一个值为“user”的鉴别器列。我希望能够使用加载数据作为供应商实例(在销售上下文中工作时),并使用它来持久化销售对象(将有一个供应商实例),但在数据库中,它引用用户表


简而言之:在数据库中,我有一个user表,在我的域中,它可以表示两个实体:user和Vendor。它们必须始终作为用户持久化,但必须根据上下文加载。在hibernate中如何映射这一点,因为使用subclass元素会使每个实例都作为用户加载(因为它们被保存为用户)?

如果我正确理解了这个问题,使用继承是不可能的,一个
实例在hibernate中不能是
用户
供应商
人员
用户
或(独占)供应商

您可以做的是将一个
映射到多个
角色
,并让
用户
供应商
扩展
角色