JPA(和继承)如何获取给定超类的所有实体

6 java jpa

鉴于以下实体定义:

@Entity
class abstract A {
    Collection<A> parents;
}


@Entity
class B extends A {

}


@Entity
class C extends A {

}
Run Code Online (Sandbox Code Playgroud)

是否可以定义一个方法,该方法返回具有给定父级的B&C类型的所有实体,不必进行两次单独的调用然后合并结果?

Collection<A> getAllByParentId(long id)
Run Code Online (Sandbox Code Playgroud)

Sea*_*oyd 11

它应该像这样简单:

List<A> results = entityManager
                      .createQuery("Select a from A a", A.class)
                      .getResultList();
Run Code Online (Sandbox Code Playgroud)

  • A a 是什么?为什么不直接从A开始呢? (3认同)