Как написать запрос JPA для ниже SQL?JPA запрос дополнительной группы по
select * from opstatus o where o.OPERATIONTYPE=2 and o.RECEIVEDFLAG =2 and o.SENDTIME in (select max(o1.SENDTIME)from opstatus o1 where (o1.OPERATIONTYPE=2 and o1.RECEIVEDFLAG =2) group by o1.dn);
Попытка выполнить запрос ниже
result = em.createQuery("select o from DTO o where "
+ "o.operationType=:operationType"
+ " and o.receivedFlag = :receivedFlag"
+ " and o.startTime in (select max(o1.startTime)from DTO o1 where
o1.receivedFlag = :receivedFlag group by o1.Dn) order by o.startTime").
setParameter("operationType","2").
setParameter("receivedFlag", "2").getResultList();
Однако во время выполнения запроса ниже получает genereated, который имеет дополнительную 'группу по T2.DN' для который мы получаем 'org.apache.openjpa.persistence.PersistenceException: ORA-00979: не GROUP BY выражение»
ВЫБОР t0.OPERATIONID, t0.CURRENTSTEP, t0.DETAILEDSTEPS, t0.DN, t0.OPERATIONTYPE, t0.RECEIVEDFLAG, t0.REQUESTID, t0.SENDTIME ОТ OPSTATUS t0, OPSTATUS t2 WHERE (t0.OPERATIONTYPE =? И t0.RECEIVEDFLAG =? И t0.SENDTIME IN (SELECT MAX (t1.SENDTIME) FROM OPSTATUS t1 WHERE (t1.OPERATIONTYPE =? AND t1.RECEIVEDFLAG =?) GROUP BY t1.DN)) GROUP BY t2.DN [params = ?,?,? ,?]
Как предотвратить добавление дополнительной группы? Я попробовал добавить «order by o.sendtime» бесполезно.