Bonjour,
Je suis un grand débutant d'Hibernate, et comme beaucoup de monde ne jure que par Hibernate je suis en train de m'y mettre. J'effectue pour l'instant des tests avant de me lancer dans le développement d'une appli. Jusqu'à présent j'ai réussi à faire les commandes de base dessus : Insert, Select (très léger), Update, Delete.
En ce moment je suis en train d'essayer d'effectuer une requête croisée et c'est le drame. Voici quelques détails :
Je développe sous Eclipse 3.0, avec le plugin Hibernate Synchroniser. Ma base de données est sous MySQL en local. Sur cette base j'ai deux tables Contact et Titre; elles contiennent différentes infos, et Contact contient une cle étrangère vers Titre. Voici un MLD :
Contact (id, nom, prenom, age, #num_titre)
Titre (id, libelle)
J'ai configuré mon accès avec Hibernate, j'ai donc un fichier hibernate.cfg.xml, un fichier Contact.hbm et un fichier Titre.hbm.
J'ai en plus mes fichiers de class Contact et Titre.
Dans mon programme je veux, pouvoir effectuer une requête croisée de la forme :
Select nom, libelle
From Contact, Titre
Where Contact.num_titre = Titre.id
And Titre.libelle="Mr";
Voici donc mon code :
Le problème qu'il y a, est que dans un session.createSQLQuery, il faut que je mettre à la fin de la requête deux String, le titre et le nom d'une classe, pour traiter les résultats.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 List cats = session.createSQLQuery( "SELECT nom, libelle FROM CONTACT AS {Contact}, TITRE AS {titre} " + "WHERE Contact.num_titre = titre.id", , , ).list();
Et là je suis perdu, comment faire pour effectuer une requête de ce style, tout en ayant aucune classe regroupant ces infos (il me faudrait les deux classes).
Vu la réputation d'Hibernate, je pense que je me suis soit fourviyer dans un mauvais chemin pour faire une requête de ce style soit que je suis perdu (ce qui est largement possible ).
Merci par avance de votre aide précieuse.
Un homme en plein de desespoir, mais qui espère grâce à vous !!!
Partager