【问题标题】:Trouble converting SQL Query into JPQL (Eclipselink)无法将 SQL 查询转换为 JPQL (Eclipselink)
【发布时间】:2010-10-29 21:07:38
【问题描述】:

大家好,我有以下查询,我似乎无法将其翻译成 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

提前感谢您可以发光的任何光!

【问题讨论】:

    标签: java jpa aggregate-functions eclipselink jpql


    【解决方案1】:

    如果我理解您的查询正确(在具有相同 jobId 的实体中选择具有最大 copyNumber 的实体),以下应该可以工作:

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

    【讨论】:

    • 是的!谢谢,我不知道为什么我会遇到这样的麻烦。
    猜你喜欢
    • 2011-09-29
    • 2021-10-09
    • 2011-06-12
    • 2019-07-13
    • 1970-01-01
    • 2013-09-17
    • 2019-10-01
    • 2011-07-30
    • 2017-10-29
    相关资源
    最近更新 更多