我使用 Contact 类实现了单表继承,并在 Person 类和 Company 类中扩展了该类。
我想知道是否有一种方法可以使用 Contact 类中定义的属性从数据库中选择 Contact 实例。当我使用“来自联系人 c”查询时,它返回个人和公司实例的列表,而不是联系人。
最佳答案
如果您的联系人不是 Person
或Company
您可以使用鉴别器列:
SELECT cat FROM Contact c WHERE c.class='contact'
如果你只有Person
和Company
在数据库中的实例中,您应该只使用结果类型 List<Contact>
并且不关心具体的子类。这就是多态性的工作原理。
关于java - Hibernate继承查询仅针对基类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18682068/