【发布时间】:2012-06-15 22:08:13
【问题描述】:
谁能给我一个 JPA 查询的例子,它选择了几个选定的子类实体?例如,父实体是机构。我已将其细分为制造商、供应商、服务提供商。我想在返回机构对象的单个查询中获取所有供应商和服务提供商,但不是制造商。
我用谷歌搜索,但找不到任何解决这个特定问题的资源。提前致谢。
【问题讨论】:
标签: java jakarta-ee jpa persistence
谁能给我一个 JPA 查询的例子,它选择了几个选定的子类实体?例如,父实体是机构。我已将其细分为制造商、供应商、服务提供商。我想在返回机构对象的单个查询中获取所有供应商和服务提供商,但不是制造商。
我用谷歌搜索,但找不到任何解决这个特定问题的资源。提前致谢。
【问题讨论】:
标签: java jakarta-ee jpa persistence
来自 JPA 2.0 规范:
4.6.17.4 实体类型表达式 [...] 实体的 Java 类用作指定实体类型的输入参数。例子:
SELECT e FROM Employee e WHERE TYPE(e) IN (Exempt, Contractor)
SELECT e FROM Employee e WHERE TYPE(e) IN (:empType1, :empType2)
[...]
所以我会尝试类似:
List<Institution> institutions = em.createQuery("SELECT i FROM Institution i WHERE TYPE(i) IN ( Supplier, ServiceProvider ) ).getResultList();
【讨论】: