java - Hibernate继承查询仅针对基类型

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

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

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

最佳答案

如果您的联系人不是 PersonCompany您可以使用鉴别器列:

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

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

关于java - Hibernate继承查询仅针对基类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18682068/

相关文章:

java - 具有多个值的 JPA 选择查询

mysql - Hibernate,从父类和子类之间共享的单个表中仅选择父类列

java - WebSocket 连接到 'ws://*' 失败 : Error during WebSocket handshake: Unexpected response code: 404

java - Hibernate:如何在删除拥有的实体后更新父行

hadoop - 使用插入覆盖分区的配置单元压缩

java - 又是: How to solve 'Repeated column in mapping for collection' ?

java - Hibernate:如何从具有多个类的查询中获取结果

JAVA8,解析文本文件并将其值解析为对象

java - 双倍的四舍五入

java - 在 Java 中,这种类型的方法覆盖是什么?