【发布时间】:2014-06-04 08:27:28
【问题描述】:
我有三个类是抽象超类汽车的子类。我正在为汽车类使用单表继承模型和@MappedSuperclass。子类是 Car、Truck 和 Van。
我想查询汽车类,但返回了不同的子类。我已经写了几个查询并进行了一些研究,但似乎无法针对 MappedSuperclasses 进行查询。我也尝试过 NativeSqlQueries,但我似乎无法弄清楚如何指定多个 ResultSetMappings。
有没有办法做到这一点?
【问题讨论】:
-
请显示您的查询和映射,可能是某个地方出现了一个小错误,导致您无法获得正确的行为。
-
我想要的查询是 SELECT a FROM Automobile a WHERE a.year
-
一些 JPA 实现允许查询映射的超类,但正如答案所说,规范不需要它。也许你的 JPA 实现不是那么灵活
-
我使用的是 eclipselink 2.5。我了解到它不允许查询映射的超类,但它允许查询常规实体超类。我最终从 TABLE_PER_CLASS 继承模型切换到了 JOINED 模型。现在我可以查询超类了。
标签: java jakarta-ee inheritance jpa jpql