1

我已经使用 Contact 类实现了单表继承,并在 Person 类和 Company 类中扩展了这个类。

我想知道是否有办法使用联系人类中定义的属性从数据库中选择联系人实例。当我使用“来自联系人 c”进行查询时,它会返回人员和公司实例的列表,而不是联系人。

4

2 回答 2

0

如果您的联系人不是Person,或者Company您可以使用鉴别器列:

SELECT cat FROM Contact c WHERE c.class='contact'

如果您的数据库中只有PersonCompany实例,您应该只使用结果类型List<Contact>而不关心特定的子类。这就是多态性的工作原理。

于 2013-09-08T09:14:25.697 回答
0

将 polymorphism="explicit" 属性放入基类标记定义中

于 2013-09-08T19:39:39.350 回答