Estoy tratando de escribir una consulta HQL para seleccionar objetos que contienen un objeto en una colección secundaria.HQL Equivalente de SQL Contiene
Ejemplo:
concurso Objeto
ContestID
ContestName
RequiredCountries -> one to many collection of Country objects
objeto País
CountryCode
CountryName
El SQL equivalente de lo que quiero:
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')
O
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)
tengo este HQL, que funciona, pero parece como no es una buena Solución
from Contest C
where (from Country where CountryCode = :CountryCode) = some elements(C.RequiredCountries)
también considerar unirse con el País, pero ya que no tienen un objeto clase para representar la relación, no estaba seguro de cómo unirme a HQL.
¿Alguien tiene alguna idea o sugerencia? Esto debería ser fácil.
Exactamente lo que necesitaba, crea una declaración IN en SQL – Brian