J'essaie d'écrire une requête HQL pour sélectionner des objets qui contiennent un objet dans une collection enfant.HQL Equivalent de SQL contient
Exemple:
concours objet
ContestID
ContestName
RequiredCountries -> one to many collection of Country objects
Pays Objet
CountryCode
CountryName
L'équivalent sql de ce que je veux:
SELECT * FROM CONTEST C
WHERE C.CONTESTID IN(SELECT CONTESTID FROM CONTEST_COUNTRY CC INNER JOIN COUNTRY CTRY ON
CC.COUNTRYCODE = CTRY.COUNTRYCODE WHERE COUNTRYCODE='USA')
OU
SELECT * FROM CONTEST C
WHERE EXISTS(SELECT CONTESTID FROM CONTEST_COUNTRY CC INNER JOIN COUNTRY CTRY ON
CC.COUNTRYCODE = CTRY.COUNTRYCODE WHERE COUNTRYCODE='USA' AND CC.CONTESTID=C.CONTESTID)
Je HQL, qui fonctionne, mais semble pas comme un bon Solution-
from Contest C
where (from Country where CountryCode = :CountryCode) = some elements(C.RequiredCountries)
Je considère également se joindre à pays, mais étant donné que je ne dispose pas d'un objet classe pour représenter la relation, je ne savais pas comment rejoindre HQL.
Vous avez des idées ou des suggestions? Cela devrait être facile.
Exactement ce dont j'avais besoin, crée une instruction IN dans SQL – Brian