如何将mySQL子查询转换为HQL名称查询

时间:2017-10-16 07:22:12

标签: mysql hibernate subquery hql graphql

这是查询完全与mySQl一起工作但它不能用于hql名称查询任何人都可以帮助我感激

这是我的SQL

SELECT * FROM ( SELECT * FROM EsEvent  ORDER BY eventTimestamp DESC ) e WHERE isReset=1 GROUP BY eventId;

这是我写的HQL名称查询。

FROM ( FROM EsEvent es ORDER BY es.eventTimestamp DESC ) EsEvent e WHERE e.isReset=1 GROUP BY e.eventId

但这不会起作用,而且会出现错误

  

无法创建sessionFactory对象:org.hibernate.HibernateException:命名查询中的错误:HQL_GET_ALL_ESEVENT_GROUP_BY_EVENT_ID_ORDER_BY_EVENT_TIMESTAMP_AND_RESET_ID_ONE

我的目的是在我评估我需要的where子句之前,任何人都可以帮助我。

1 个答案:

答案 0 :(得分:0)

在HQL中尝试:

SELECT e FROM 
(SELECT es FROM EsEvent es ORDER BY es.eventTimestamp DESC ) EsEvent e
WHERE e.isReset=1 GROUP BY e.eventId

但一个简单的方法是:

SELECT es FROM EsEvent es 
WHERE es.isReset=1
GROUP BY es.eventId
ORDER BY es.eventTimestamp DESC

注意:

通常,在字段列表中使用GROUP BY子句时,必须仅使用分组字段或聚合(按功能)字段