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 :
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.
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
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) )
Quelqu'un a-t-il une solution ?
Merci d'avance !
Partager