Критерии Hibernate Подзапрос
Мне нужно сделать этот запрос SQL с 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)
Идея состоит в том, чтобы получить идентификаторы из игр, которые не принадлежат пользователю. Я попытался использовать 10 различных подходов с detachedCriteria, но я получаю исключение MappingException "Unknown entity: null". Код должен выглядеть следующим образом:
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));
Установка также прогнозов для возвращения только id игр.
Есть идеи? Я думаю, что у Hibernate есть проблемы с присоединением к запросам без псевдонима. Добавление псевдонима работает, но результаты совершенно неверны.