我嘗試將我的SQL查詢轉換爲HQL或JPQL(我希望受益於對象映射)。HQL/JPQL - 從嵌套選擇FROM
我的SQL請求是:
SELECT *
FROM (SELECT bde, MAX(creation_date)
FROM push_campaign GROUP BY bde) temp,
push_campaign pc where pc.bde = temp.bde and pc.creation_date = temp.creation_date;
我嘗試(失敗)將其與轉換在JPQL:
select pc
from (select bde, max(creationDate)
from PushCampaign group by bde) temp,
PushCampaign pc
where pc.bde = temp.bde and pc.creationDate = temp.creationDate
但我得到了提出:
IllegalArgumentException occured :
組織.hibernate.hql.ast.QuerySyntaxException:意外標記:(近 1行,第16欄第
I [(由BDE從 models.PushCampaign組中選擇的id,MAX(creationDate))溫度,models.PushCampaign PC其中 pc.id = temp.id選擇從PC]讀取嵌套select只能在select或where子句中。
您是否有解決方法來保持對象映射的請求和好處?
您是否嘗試過使用'INNER JOIN',而不是在'WHERE'加盟條款? –
我有搜索如何但我找不到子查詢和innerjoin的任何示例。我嘗試過的所有測試都失敗了......感謝提示,我會繼續向這個方向發展 – iwalktheline
在jpql的內部連接中不可能有子查詢。這是唯一可能的地方或有陳述.... – iwalktheline