Problemi conversione SQL Query in JPQL (EclipseLink)
-
27-09-2019 - |
Domanda
Ciao ragazzi, ho la seguente query e per la vita di me non riesco a tradurlo in JPQL. L'SQL di lavoro è:
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
Il mio debole tentativo di tradurre è come segue:
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
Grazie in anticipo per qualsiasi luce si può brillare!
Soluzione
Se ho capito il vostro diritto di query (selezionare entità che hanno il più grande tra i copyNumber
entités con la stessa jobId
), il seguente dovrebbe funzionare:
SELECT o
FROM PrintDetailEntity o
WHERE o.copyNumber =
(SELECT MAX(e.copyNumber) FROM PrintDetailEntity e WHERE o.jobId = e.jobId)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow