Bonjour à tous,
J'ai réussi à avoir les résultats que je souhaite grâce à une requête SQL mais je n'arrive pas à la traduire en HQL.
Les deux tables concernées sont :
- T_COMPANY : table des company, les champs sont ID, name
- T_CONSULTATION : table des historiques, les champs sont companyID, userID
Ma requete me retourne pour un user donné, toutes les company en affichant le ID, le name et un nouveau champ true si le user a consulte la company correspondante et false sinon.
Par exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 select company.ID, company.name, case when (consult.userID is null) then 'true' else 'false' end as consult from T_COMPANY company, T_CONSULTATION consult where consult.companyID (+)= company.ID and consult.userID (+)= 20
T_COMPANY :
ID | Name
------------
1 | Avymo
2 | Orlupo
3 | Niij
T_CONSULTATION :
companyID | userID
--------------------
1 | 20
2 | 30
Résultats souhaités :
ID | Name | consult
--------------------
1 | Avymo | true
2 | Orlupo | false
3 | Niij | false
Probleme :
Je ne sais pas traduire le (+) en HQL
NB : le userID étant le ID du user connecté
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 select company.ID, company.name, case consult.companyID when company.ID then false else true end) from Company company, Consult consult where consult.userID = :userID
Avez-vous des idées ?
Merci pour votre aide.
Partager