我有这样的表:
项目表:
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
:地图项目设置为个人/公司类与哪里