Subconsulta de criterios de hibernación
Necesito hacer esta consulta SQL con detachedCriteria:
SELECT g.id FROM games g
WHERE NOT EXISTS (
SELECT 1 FROM users_games ug WHERE ug.user_id = 1 AND g.id = ug.game_id)
La idea es obtener los identificadores de los juegos que no son propiedad del usuario. Intenté como 10 enfoques diferentes con detachedCriteria pero obtengo la "MappingException de entidad desconocida: nulo".
DetachedCriteria subquery = DetachedCriteria.forClass(UserGame.class, "ug")
.add(Restrictions.eq("ug.user.id", 1))
.add(Restrictions.eqProperty("ug.game.id","u.id"));
DetachedCriteria criteria = DetachedCriteria.forClass(Game.class, "g")
.add(Subqueries.notExists(subquery));
Configurando también las proyecciones para devolver solo la identificación de los juegos.
¿Algunas ideas? Creo que Hibernate tiene problemas para unirse a las consultas sin alias. Agregar alias funciona pero los resultados son bastante incorrectos.