首页 > 解决方案 > 如何避免 FROM 子句中的子查询将 SQL 查询转换为休眠查询?

问题描述

我有一个相当简单的查询,它适用于标准 SQL,但不适用于 HQL:

SELECT id 
FROM ( SELECT COUNT(*) as rows, 
              MESSAGES_ID as id 
       FROM motcles_message mm 
       WHERE motcle IN :keyWords 
       GROUP BY MESSAGES_ID) a 
WHERE a.rows = :size

有什么办法可以避免在 FROM 语句中使用子查询,因为 HQL 不支持它?我知道它可以在 SELECT 和 WHERE 子句中使用子查询,但我找不到解决方案。

标签: javamysqlsqlhibernate

解决方案


SELECT MESSAGES_ID as id 
FROM motcles_message mm 
WHERE motcle IN :keyWords 
GROUP BY MESSAGES_ID
HAVING COUNT(*) = :size

推荐阅读