【发布时间】:2021-08-25 16:32:05
【问题描述】:
在我的@Entity 带注释的Course 类中,我有以下@ElementCollection 带注释的地图:
@ElementCollection
private Map<Student, Double> courseStudAndAvgStudGrade;
在上面的示例中,Student 是另一个 @Entity 注释类,其值是每个 Student 的 Course 的平均成绩。我正在尝试在 JPQL 中编写一个查询,该查询将检索此地图的所有条目并按条目值降序排序。
到目前为止,我有以下内容:
TypedQuery<Tuple> query =
em.createQuery("SELECT KEY(map), VALUE(map) "
+ "FROM Course c JOIN c.courseStudAndAvgStudGrade map WHERE c.id = :id", Tuple.class);
这会在 Tuple 中正确检索所需 Course 的值,但是将 ORDER BY VALUE(map) DESC 添加到 JPQL 查询会导致 java.sql.SQLException: Subquery returns more than 1 row。
可以在 JPQL 的地图上做ORDER BY 吗?
【问题讨论】: