Hibernate:根据类型将多对一关联映射到不同的父表



我有这样的表:

项目表:

ItemName   Varchar2(200)
ItemId     Number
OwnerId    Number
OwnerType  number

人表:

PersonName Varchar2(200)
PersonId   Number

公司表:

CompanyName Varchar2(200)
CompanyId   Number

当条目的ownerType为'1'时,条目的ownerId是'person'表的外键PersonId。当OwnerType为'2'时,ownerId是Company表的CompanyId的外键。

我没有做数据建模&我没有更改模式的选项。

我想解决两个问题:我想要一个Item表的映射文件,它会给我项目的所有者。我想要Person的映射文件。公司表,这些表将分别为我提供Person或Company所拥有的Items。

注意:CompanyId和PersonId可以是相同的数字,所以当Person时,一个项目只属于Person。Personid = item。Ownerid和item。owner = 1.

我可以控制映射文件&对象图,所以我可以创建一个Owner接口或超类。

Hibernate可以做这种事情吗?

  • Case 1:可以使用Table per class hierarchy的概念。
  • Case 2:地图项目设置为个人/公司类与哪里

最新更新