【发布时间】:2018-09-14 00:04:02
【问题描述】:
我想从在 Rating 表中具有外键 Movie_id 的 Movies 表中打印标题。在 rating 表中,我们必须根据 movie_id 的出现来获得前 10 个结果。由于 HQL 中不允许限制,所以 setMaxResults 被使用
Query q=session.createQuery("select Title from Movies as M Inner Join ( SELECT Movie_id, COUNT(*) FROM Rating GROUP BY Movie_id ORDER BY COUNT(*) DESC LIMIT 10 ) as R ON M.Movie_id=R.Movie_id").setMaxResults(10);
例外情况是:
java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: ( near line 1, column 59 [select Title from com.rahul.model.Movies as M Inner Join ( SELECT Movie_id, COUNT(*) FROM com.rahul.model.Rating GROUP BY Movie_id ORDER BY COUNT(*) DESC LIMIT 10 ) as R ON M.Movie_id=R.Movie_id]
既然HQL不支持子查询怎么实现呢?
【问题讨论】:
标签: java mysql sql hibernate hql