Hibernate Criteria Subquery
Ich muss diese SQL-Abfrage mit detachedCriteria ausführen:
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)
Die Idee ist, die IDs von den Spielen abzurufen, die nicht dem Benutzer gehören. Ich habe 10 verschiedene Ansätze mit detachedCriteria ausprobiert, aber ich erhalte die MappingException "Unknown entity: null". Der Code sollte wie folgt aussehen:
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));
Stellen Sie auch die Projektionen so ein, dass nur die ID der Spiele zurückgegeben wird.
Irgendwelche Ideen? Ich denke, Hibernate hat einige Probleme, die Abfragen ohne Alias zu verbinden. Das Hinzufügen eines Alias funktioniert, aber die Ergebnisse stimmen nicht.