2
鑑於以下類型的層次結構:JPA/Hibernate查詢多態場
@Entity
@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)
class A { }
@Entity
class B extends A {
String b;
}
@Entity
class C extends A {
String c;
}
@Entity
class D {
@ManyToOne
A a;
}
現在我想查詢類型d的所有記錄與C型和現場「C」的「A」等於給定的字符串參數:
...
Root<D> root
CriteriaBuilder cb
cb.equal(root.get("a").get("c").as(String.class), "Test");
...
由於可預見的,我會得到一個異常告訴我,屬性「C」是未知的,因爲它不是在超A.定義
任何想法,如何告訴JPA查詢,它應該只有j oin C在D的字段'a'並向字段'c'添加一個條件?