Hibernate version: 1.0.2.4000
Bonjour,
Je travaille en ce moment sur un projet qui exploite NHibernate.
J'ai le modèle UML Suivant :
[Contact]--->[Telephone]--->[TypeTelephone] ou TypeTelephone peut pour le moment prendre les valeurs "Personnel", "Professionnel" ou "Entreprise".
Je souhaite au travers d'une requête HQL récupérer tous les Contacts présents en base ainsi que leurs téléphones professionnels.
-----------------------------------------------------------------------------
Voici le genre de requête HQL que je souhaiterais ecrire :
SELECT Contact.Nom, Contact.Prenom, TelPro.Numero
FROM Contact Contact
LEFT JOIN Contact.Telephone TelPro ON Telephone.TypeTelephone.Libelle = 'Professionnel'
Le problème est que la clause ON après les LEFT JOIN n'est pas autorisée dans les requêtes HQL.
-----------------------------------------------------------------------------
J'ai alors essayé cette requête :
SELECT Contact.Nom, Contact.Prenom, TelPro.Numero
FROM Contact Contact
LEFT JOIN Contact.Telephone TelPro
WHERE TelPro.TypeTelephone.Libelle = 'Professionnel'
Le problème alors, c'est que cette requête ne remonte que les Contacts ayant un téléphone professionnel or je voudrais aussi avoir ceux qui n'ont pas de téléphone professionnel.
------------------------------------------------------------------------------
Est - ce un "Oubli" de la part des producteurs de NHibernate(Ce qui m'étonnerais), Y a t-il une solution à mon problème, ou est ce qu'il y a une logique qui a sucité le fait que les Clauses ON dans les LEFT JOIN Soient interdites???
Merci pour toute réponse.
ps. Je suis prêt à mettre les mains dans le code pour faire les modifications nécessaires s'il y a besoin, mais j'ai peur de faire des conneries, donc si je me lance, ce serait avec l'aval de quelqu'un de compétent :p
|