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? –