0
我有一個MySql
這樣的查詢:轉換MySQL查詢JPA命名查詢
select AK.*, max(AA.activityDate)
from AssessmentKey AK
join AssessmentActivity AA on AA.ASSESSMENTKEY_ID = AK.id
group by AK.id having max(AA.activityDate) <= '2012-10-02 17:30:55'
有沒有辦法轉換成JPA
NamedQuery
。我正在使用OpenJPA
。
如果我把它直接進入:
@NamedQuery(name = "AssessmentActivity.findByDate",
query = "select AK.*, max(AA.activityDate) from AssessmentKey AK
join AssessmentActivity AA on AA.ASSESSMENTKEY_ID = AK.id
group by AK.id having max(AA.activityDate) <= '2012-10-02 17:30:55'")
錯誤在這裏顯示:select AK.*
是identifier expected, got "*"
而且它不喜歡on
,在這裏它說:
哪有我解決了這個問題?
謝謝,我會嘗試使用NativeQuery並讓你知道它是否工作。 –
它與NativeQuery一起工作,謝謝。 –
NativeNamedQuery只適用於當前表,它不會加載與該表相關的其他對象。所以我試圖做一個NamedQuery,但是加入語句存在問題。問題是,我不能這樣做:AK.assesmentActivity,因爲我的評估關鍵字沒有任何映射到評估活動,只有評估活動有評估關鍵對象的多對一映射。任何想法如何使其工作而無需更改數據庫,只是如何將此mysql查詢轉換爲jpql? –