无法将SQL查询转换为JPQL(Eclipselink)

时间:2010-10-29 21:07:39

标签: java jpa aggregate-functions eclipselink jpql

嘿伙计们,我有以下查询,对于我的生活,我似乎无法将其翻译成JPQL。工作SQL是:

select * from TB_PRINT_DETAIL y inner join 
(select JOB_ID,max(COPY_NUM) MAX_COPY_NUM from TB_PRINT_DETAIL  group by JOB_ID  ) x
on y.JOB_ID = x.JOB_ID and y.COPY_NUM = x.MAX_COPY_NUM

我翻译它的微弱尝试如下:

select o from PrintDetailEntity o inner join (select o2.jobId, max(o2.copyNumber) as
maxCopyNum from PrintDetailEntity o2 group by o2.jobId ) as x on o.jobId = o2.jobId and
o.copyNum = o2.maxCopyNum where o.printSuppressionReasonEntity is null

提前感谢你能发光的任何光芒!

1 个答案:

答案 0 :(得分:1)

如果我理解您的查询权限(在具有相同copyNumber的参与者中选择具有最大jobId的实体),则以下内容应该有效:

SELECT o 
FROM PrintDetailEntity o 
WHERE o.copyNumber = 
    (SELECT MAX(e.copyNumber) FROM PrintDetailEntity e WHERE o.jobId = e.jobId)