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());
}
我已经用 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());
}