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(使用一组交易)李>
简而言之:在数据库中,我有一个user表,在我的域中,它可以表示两个实体:user和Vendor。它们必须始终作为用户持久化,但必须根据上下文加载。在hibernate中如何映射这一点,因为使用subclass元素会使每个实例都作为用户加载(因为它们被保存为用户)?如果我正确理解了这个问题,使用继承是不可能的,一个
人
实例在hibernate中不能是用户
和供应商
,人员
是用户
或(独占)供应商
您可以做的是将一个人
映射到多个角色
,并让用户
和供应商
扩展角色