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
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin pour ajouter un alias, comme suit:
Qui devrait l'aider à
Vous avez besoin d'une projection et spécifie l'attribut qui doit être adapté.
J'espère que ça aide.
Essayer