-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 1 post ] 
Author Message
 Post subject: Requete HQL vs Criteria
PostPosted: Wed Feb 08, 2006 5:28 am 
Newbie

Joined: Thu Jun 02, 2005 4:30 am
Posts: 5
Bonjour à tous,

Je suis dans le cas de figure suivant :
- un utilisateur possède un ensemble de groupes de certificats ;
Code:
public interface Utilisateur
{
public Collection getCertificateGroups();
}

- chaque groupe possède lui-même un ensemble de certificats ;
Code:
public interface CertificateGroup
{
public Collection getCertificates();
}

- d'autre part, un manager gère un ensemble de certificats.
Code:
public interface Manager
{
public getManagedCertificates();
}

Le mapping est tout ce qu'il y a de plus banal.

Je recherche l'ensemble des utilisateurs sous la responsabilité d'un manager, c'est-à-dire les utilisateurs qui possèdent un certificat gèré par un manager connu.
Facile, me direz-vous :)
En effet, en HQL, cela s'écrit très bien :
Code:
SELECT utilisateur
FROM UtilisateurImpl utilisateur, ManagerImpl manager
JOIN utilisateur.certificateGroups groupe, groupe.certificates certificat, manager.managedCertificates certificatGere
WHERE certificat = certificatGere
AND mandataire.id = 42

Or, je dois restreindre la liste des utilisateurs selon leurs nom, prenom et email. C'est là que j'aimerais utiliser l'API Criteria. Malheureusement, je n'arrive pas à exprimer la condition "WHERE certificat = certificatGere" :(
J'aimerais si possible eviter les solutions :
- effectuer deux requetes successives (avec un "IN" par exemple) ;
- effectuer des requetes imbriquées ;
- filtrer applicativement la collection retournée (via un Predicate, par exemple) ;

L'un d'entre vous pourrait-il m'eclairer ?

Merci d'avance
Ticker


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 1 post ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.