0
我想写一个相当复杂的JPQL语句,它根据另一个表中的值对结果进行排序。我知道MySQL会是什么样子,但我需要帮助将它变成JPQL。这是等效的SQL:复杂的JPQL ORDER语句
SELECT o.* FROM Observation o
LEFT JOIN Obs_Event p
ON p.Event_ID = o.Event_ID
LEFT JOIN Event_Set ppp
ON ppp.Event_ID = o.Event_ID AND ppp.Event_Set_ID = o.Event_Set_ID
WHERE o.Individual_ID = <some id>
AND o.Observation_Date = <a date value>
ORDER BY ppp.Seq_Num ASC
任何关于如何做到这一点的帮助将不胜感激。具体来说,我似乎有这个部分的麻烦:
ON ppp.Event_ID = o.Event_ID AND ppp.Event_Set_ID = o.Event_Set_ID
所以,到目前为止,我已经试过这样:
Query q= em.createQuery("select o " +
" from Observation as o " +
" join o.eventID p" +
" join p.eventSetCollection ppp " +
" where o.individualID = :indiv " +
" AND o.observationDate = :d " +
" AND o.eventID = ppp.event " +
"";
如果我尝试添加像
WHERE ...
AND o.eventSetID = ppp.eventSet
...它根本不起作用。如果我查看生成的SQL,它看起来像ppp.eventSet被忽略。
对此提出建议?
您的实体如何映射? – axtavt 2011-02-09 10:22:56