我与News
的一对多关系中有Comments
个实体。
我的目标是根据评论数量对News
进行排序。
以下查询有效,但它显然只返回ID,而不是所有News
'字段:
SELECT news.id
FROM News news JOIN news.comments comments
GROUP BY news
ORDER BY COUNT(comments) DESC
如果我将news.id
替换为news
,则会出现错误:
SqlExceptionHelper:146 - ORA-01034: ORACLE not available
如何在单个查询中获取整个已排序的News
实体,而不仅仅是ID?
(数据库:Oracle XE,持久性提供程序:Hibernate)
答案 0 :(得分:1)
作为@thanhnguyen said:
如果你在GROUP BY中传递一个实体,Hibernate会自动将其id添加到底层数据库的转换后的SQL中。此外,GROUP BY中的值必须存在于SELECT子句中。因此,您可以选择其ID,而不是选择整个对象,然后从这些ID中,您可以再次检索该对象。
这可能表明您想做的事情是不可能的。