Hibernate Critères Sous-Requête

J'ai besoin de faire cette requête SQL avec 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)

L'idée est d'obtenir l'id du jeux qui ne sont pas possédés par l'utilisateur.
J'ai essayé 10 différentes approches avec detachedCriteria mais j'ai l' "entité Inconnue: null," MappingException
Le code devrait ressembler à:

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));

Paramètre également les prévisions pour renvoyer uniquement les id des jeux.

Des idées?
Je pense que Hibernate a quelques difficultés à joindre les requêtes sans alias.
L'ajout d'alias fonctionne, mais les résultats sont assez mauvais.

  • N'êtes-vous pas mapper une association entre "jeux" et "user_games" dans vos objets / mappages?
  • user_games a une cartographie de jeux, mais pas vice-versa
InformationsquelleAutor Gonzalo | 2010-09-17