Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Hibernate继承查询仅用于basetype_Java_Hibernate_Hql_Hibernate Mapping_Single Table Inheritance - Fatal编程技术网

Java Hibernate继承查询仅用于basetype

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类实现了单表继承,并在Person类和Company类中扩展了该类


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

如果您的联系人不是
人员
公司
,则可以使用鉴别器列:

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

如果数据库中只有
Person
Company
实例,则只需使用
List
的结果类型,而不必关心特定的子类。这就是多态性的工作原理。

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

您的数据库中是否有非个人或公司的联系人?否,我只在数据库中保存个人和公司,但由于它们扩展了Contact,所以当从Contact c查询时,我希望收到Contact实例。