3 pièce(s) jointe(s)
[HQL] Comparaison de collections
Bonjour à tous,
étant donné les classes suivantes (voir pièces jointes) :
- AbstractUnit, représentant une unité (peu importe)
- Step, représentant une étape de traitement d'une unité
- UnitStepState, représentant l'état d'une unité dans une étape (fait ou pas)
je cherche à formuler la requête suivante :
sélectionner toutes les unités pour un ensemble d'étapes données, telles que les étapes pré-requises (données dans step.requiredSteps) ont été effectuées (unitStepState.done = true pour chaque étape requise).
Voici une première version de la requête hql, qui ne fonctionne pas :
Code:
1 2 3 4 5 6 7 8
|
select u from AbstractUnit u
join u.stepStates uss join uss.step step
where step in (?) and uss.done = false
and step.requiredSteps = (
select s from Step s, UnitStepState us
where us.done = true and s in elements(step.requiredSteps)
) |
Le problème vient du fait qu'on ne peut pas faire la comparaison entre step.requiredSteps et le résultat de la sous-requête.
Quelqu'un a-t-il une solution ?
Merci d'avance !