【问题标题】:Polymorphic JPA Query多态 JPA 查询
【发布时间】:2012-06-15 22:08:13
【问题描述】:

谁能给我一个 JPA 查询的例子,它选择了几个选定的子类实体?例如,父实体是机构。我已将其细分为制造商、供应商、服务提供商。我想在返回机构对象的单个查询中获取所有供应商和服务提供商,但不是制造商。

我用谷歌搜索,但找不到任何解决这个特定问题的资源。提前致谢。

【问题讨论】:

    标签: java jakarta-ee jpa persistence


    【解决方案1】:

    来自 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();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-06
      • 1970-01-01
      • 2020-03-15
      • 2016-01-31
      • 2018-05-14
      • 2020-03-29
      相关资源
      最近更新 更多