.im使用JPARepository + Hibernate,并且下一个查询是一个子查询,它通过找到的数字或寄存器对子结果进行排序。
@Query("SELECT t0 FROM TextFragment t0 WHERE t0.id = "
+ "(SELECT t.id FROM TextFragment t JOIN t.fragment f JOIN t.reactionsTextFragments r "
+ "WHERE f.parent.id = :idParent AND t.codStateTextFragment = '001' "
+ "GROUP BY r.textFragment ORDER BY COUNT(r.textFragment) DESC, t.updatedDate ASC)")
我有nex错误
引起:org.hibernate.hql.internal.ast.QuerySyntaxException:期待CLOSE,找到' null'第1行第254列附近[select count(t0)FROM com.treebuk.model.TextFragment t0 WHERE t0.id =(SELECT t.id FROM com.treebuk.model.TextFragment t JOIN t.fragment f JOIN t.reactionsTextFragments r WHERE f.parent.id =:idParent AND t.codStateTextFragment =' 001' GROUP BY r.textFragment]
为什么查询没有读取ORDER BY子句和Query的最终结果?我不明白......任何人都可以帮助我吗?
答案 0 :(得分:1)
在JPQL中,子查询不能有ORDER BY。根据BNF
subquery ::= simple_select_clause subquery_from_clause [where_clause] [groupby_clause] [having_clause]
因此您的查询无效。遗憾的是,错误消息并没有明确说明问题所在。