2017-10-16 17 views
-1

これは、クエリが完全にMySQLで取り組んでいるが、それはいずれかが、それはHQL名のクエリに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節を評価する前に私はそれを注文する必要があります。

答えて

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句を使用グループ化されたフィールドのみを使用するか、(関数別に)フィールドを集計する必要があります

+0

はまだ同じエラーです。私はそれを試すことができる代替手段があれば、私の目的を果たすだけです。 – randikaisuru

+0

@randikaisuru SELECT e.eventIdを入れて、クエリが正しく機能するかどうかを教えてください。 –

+0

同じエラーです。しかし、これは完全に動作しています "SELECT e.eventId FROM EsEvent e where e.isReset = 1 GROUP BY e.eventId"しかし、サブクエリ部分が追加されると、エラーで終了します。 – randikaisuru

関連する問題