JPQL:在查询中访问继承的属性

JPQL: Access inherited Attributes in a Query

我已经用 JPA 实现了这个 (Eclipse Link) Classes(我还不能post图片)

现在我正在设置一个查询,显示特定教师上课的所有学期。

Query query2 = em
   .createQuery("FROM Semester s, IN (s.lesson) l, IN(l.lessonTeacher) lT1 WHERE lT1.teacher.lastname = :lastname");
query.setParameter("lastname", "Spooner");
List<Semester> resultList2 = query.getResultList(); 
for(Semester s : resultList2){
    System.out.println(s.getname());
}

我的问题是:lT1.teacher.lastname = :lastname 我无法访问继承的属性。

The state field path 'lT1.teacher.lastname' cannot be resolved to a valid type.

any1 可以帮忙吗?

问题不在于继承的属性。您必须像下面这样向您的查询添加另一个连接(到 Teacher table)来解决这个问题:

Query query2 = em
   .createQuery("FROM Semester s, IN (s.lesson) l, IN(l.lessonTeacher) lT1, lT1.teacher t WHERE t.lastname = :lastname");
query.setParameter("lastname", "Spooner");
List<Semester> resultList2 = query.getResultList(); 
for(Semester s : resultList2){
    System.out.println(s.getname());
}