Java Hibernate继承查询仅用于basetype
我使用Contact类实现了单表继承,并在Person类和Company类中扩展了该类Java Hibernate继承查询仅用于basetype,java,hibernate,hql,hibernate-mapping,single-table-inheritance,Java,Hibernate,Hql,Hibernate Mapping,Single Table Inheritance,我使用Contact类实现了单表继承,并在Person类和Company类中扩展了该类 我想知道是否有一种方法可以使用Contact类中定义的属性从数据库中选择Contact实例。当我使用“来自联系人c”进行查询时,它会返回一个未联系的人员和公司实例列表。如果您的联系人不是人员或公司,则可以使用鉴别器列: SELECT cat FROM Contact c WHERE c.class='contact' 如果数据库中只有Person和Company实例,则只需使用List的结果类型,而不必关心
我想知道是否有一种方法可以使用Contact类中定义的属性从数据库中选择Contact实例。当我使用“来自联系人c”进行查询时,它会返回一个未联系的人员和公司实例列表。如果您的联系人不是
人员
或公司
,则可以使用鉴别器列:
SELECT cat FROM Contact c WHERE c.class='contact'
如果数据库中只有
Person
和Company
实例,则只需使用List
的结果类型,而不必关心特定的子类。这就是多态性的工作原理。在基类标记定义中放置polymorphics=“explicit”属性您的数据库中是否有非个人或公司的联系人?否,我只在数据库中保存个人和公司,但由于它们扩展了Contact,所以当从Contact c查询时,我希望收到Contact实例。