我的表格看起来像这样:
项目表:
ItemName Varchar2(200)
ItemId Number
OwnerId Number
OwnerType number
人员表:
PersonName Varchar2(200)
PersonId Number
公司表:
CompanyName Varchar2(200)
CompanyId Number
当Item的ownerType为'1'时,该项的ownerId是'person'表的外键PersonId。当OwnerType为'2'时,ownerId是Company表的CompanyId的外键。
我没有做数据建模和我无法更改架构。
我想解决两个问题: (1)我想要一个Item表的映射文件,它会给我项目的所有者。 (2)我想为Person& amp;公司表格分别给我个人或公司拥有的物品。
注意:CompanyId和PersonId可以是相同的数字,因此当person.personid = item.ownerid和item.ownertype = 1时,项目仅由Person拥有。
我可以控制映射文件&对象图,所以我可以创建一个Owner接口或超类。
Hibernate能做这种事吗?
答案 0 :(得分:0)
Case 1
:您可以使用Table per class hierarchy
。Case 2
:将人物/公司类设置的地图项目放在哪里
设置映射的条件。