我需要這樣做SQL查詢用的DetachedCriteria:Hibernate的標準子查詢
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)
的想法是從沒有被用戶所擁有的遊戲獲得的ID。 我試着像的DetachedCriteria 10點不同的方法,但我得到的「未知實體:空」 MappingException 代碼應該是這樣的:
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在加入沒有別名的查詢時遇到了一些麻煩。 添加別名的作品,但結果是相當錯誤的。
你是不是在映射你的對象/映射「遊戲」和「user_games」之間的關聯? – 2010-09-17 20:35:06
user_games映射到遊戲但不是反之亦然 – Gonzalo 2010-10-18 14:10:20