SQL: EJB QL, test collection dans Collection
Résolu/Fermé
Geraral
Messages postés
7
Date d'inscription
dimanche 1 février 2009
Statut
Membre
Dernière intervention
9 janvier 2011
-
29 nov. 2009 à 12:40
Geraral Messages postés 7 Date d'inscription dimanche 1 février 2009 Statut Membre Dernière intervention 9 janvier 2011 - 29 nov. 2009 à 14:50
Geraral Messages postés 7 Date d'inscription dimanche 1 février 2009 Statut Membre Dernière intervention 9 janvier 2011 - 29 nov. 2009 à 14:50
A voir également:
- SQL: EJB QL, test collection dans Collection
- Récupération serveur sql - Télécharger - Gestion de données
- Sql replace plusieurs valeurs - Forum Programmation
- Sql query - Télécharger - Gestion de données
- Delete cascade sql - Forum Programmation
- Dupliquer une table sql ✓ - Forum Programmation
1 réponse
Geraral
Messages postés
7
Date d'inscription
dimanche 1 février 2009
Statut
Membre
Dernière intervention
9 janvier 2011
1
29 nov. 2009 à 14:50
29 nov. 2009 à 14:50
je viens de trouver une astuce pour faire marcher ma requête, si ça peut servir à d'autres:
en fait avec la requête:
SELECT distinct c FROM Candidature c, IN (c.critereCollection) AS tpc where tpc.tpcId = SOME (SELECT t.tpcId FROM TypeCritere t WHERE t.tpcId = 1 OR t.tpcId = 10 OR t.tpcId = 2 OR t.tpcId = 21 )
je récupére un paquet de ligne, bonne mais aussi mauvaise, par contre, il suffit de checker le nombre de résultats avec un groupb by et un having count, en sachant (par le code java) combien d'éléments on a recherché:
SELECT distinct c FROM Candidature c, IN (c.critereCollection) AS tpc where tpc.tpcId = SOME (SELECT t.tpcId FROM TypeCritere t WHERE t.tpcId = 1 OR t.tpcId = 10 OR t.tpcId = 2 OR t.tpcId = 21 ) GROUP BY c HAVING COUNT(c) = 4
en fait avec la requête:
SELECT distinct c FROM Candidature c, IN (c.critereCollection) AS tpc where tpc.tpcId = SOME (SELECT t.tpcId FROM TypeCritere t WHERE t.tpcId = 1 OR t.tpcId = 10 OR t.tpcId = 2 OR t.tpcId = 21 )
je récupére un paquet de ligne, bonne mais aussi mauvaise, par contre, il suffit de checker le nombre de résultats avec un groupb by et un having count, en sachant (par le code java) combien d'éléments on a recherché:
SELECT distinct c FROM Candidature c, IN (c.critereCollection) AS tpc where tpc.tpcId = SOME (SELECT t.tpcId FROM TypeCritere t WHERE t.tpcId = 1 OR t.tpcId = 10 OR t.tpcId = 2 OR t.tpcId = 21 ) GROUP BY c HAVING COUNT(c) = 4