有人可以给我一个选择几个选定子类实体的 JPA 查询示例吗?例如,父实体是机构。我已将其细分为制造商、供应商、服务提供商。我想在返回机构对象的单个查询中获取所有供应商和服务提供商,但不是制造商。
我用谷歌搜索,但找不到解决这个特定问题的任何资源。提前致谢。
有人可以给我一个选择几个选定子类实体的 JPA 查询示例吗?例如,父实体是机构。我已将其细分为制造商、供应商、服务提供商。我想在返回机构对象的单个查询中获取所有供应商和服务提供商,但不是制造商。
我用谷歌搜索,但找不到解决这个特定问题的任何资源。提前致谢。
来自 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();