Hibernate继承查询仅适用于basetype

时间:2013-09-08 09:02:53

标签: java hibernate hql hibernate-mapping single-table-inheritance

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

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

2 个答案:

答案 0 :(得分:0)

如果您的联系人不是PersonCompany,则可以使用歧视器列:

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

如果您的数据库中只有PersonCompany个实例,则应使用结果类型List<Contact>而不关心特定的子类。多数民族是如何运作的。

答案 1 :(得分:0)

在基类标记定义中放置polymorphism =“explicit”属性