Bonjour,
J'ai un cas particulier que je ne comprends pas comment traiter.
Je cherche le moyen a trier les documents par la dernière opération correspondante a ce document.
La liste de documents récupérés contient au moine 3500 éléments donc cela me semble stupide de trier a cote d'appli.
Et je limite la collection par 10 ligne pour ne pas trop charger displaytag.
Code:
SELECT distinct d
FROM Document d, DocumentStatus status, EnvironmentStatus es , Operation op
WHERE d.status = status
AND (d.environmentStatus IS NULL
OR d.environmentStatus = es)
AND op in elements(d.operationCollection)
AND EXISTS (SELECT o
FROM Operation o
WHERE o.document = d
AND o.dateOp = (SELECT MAX(oper.dateOp)
FROM Operation oper
WHERE oper.document = d)
AND o.dateOp BETWEEN :dateTrmntFrom AND :dateTrmntTo)
AND d.dateDocument <= :dateMsgTo
AND (status IS NULL
OR status.status = 'KO')
AND (es IS NULL
OR es.name = 'Test')
AND op.dateOp=(SELECT MAX(oper.dateOp)
FROM Operation oper
WHERE oper.document = d)
ORDER BY op.dateOp DESC
Any proposition?
Excusez-moi pour mon français.
Merci d'avance