IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Hibernate Java Discussion :

probleme HQL pour asso reflexive many-to-many


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 43
    Par défaut probleme HQL pour asso reflexive many-to-many
    bonjour,

    J'ai dans mon modele une association reflexive sur l'entité Acteur.
    Un acteur peut être une structure ou un membre (d'une structure donc ...).

    J'ai donc mapper la classe acteur de la façon suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    <?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC
    	"-//Hibernate/Hibernate Mapping DTD//EN"
    	"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >
     
    <hibernate-mapping package="hibernateLFD">
    	<class name="Acteur" table="acteur">
     
    		<meta attribute="sync-DAO">false</meta>
     
    		<id name="Id" type="integer" column="id"><generator class="native"/></id>
     
    		<property name="Nom" column="nom" type="string" not-null="false" length="30" />
    		...
     
    		<set name="structures" table="participe">
    			<key column="id_membre" />
    			<many-to-many column="id_structure" class="Acteur" />
    		</set>
    		<set name="membres" table="participe" inverse="true">
    			<key column="id_structure" />
    			<many-to-many column="id_membre" class="Acteur" />
    		</set>
     
    	</class>	
    </hibernate-mapping>
    Comme vous l'avez remarqué, je récupère les id des acteurs 'membres' et 'structures" dans une table qui se nomme "participe".

    J'arrive donc sans problème à ajouter un membre à une structure, et vice versa, grâce à une requête du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "select a from Acteur a left join fetch a.membres where a.id = :idStructure"
    Par contre, je n'arrive pas à trouver la requête me permettant de récupérer la liste de tous les acteurs de type 'structure' par exemple...

    Merci pour votre aide.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 43
    Par défaut
    Auto réponse :
    Je viens de trouver une façon de faire (sûrement pas le plus élégant...) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "select a from Acteur a join a.membres m where m.id > 0"
    Voili voilou.

    Au plaisir.

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 276
    Par défaut
    Et quelque chose comme ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select s from Acteur a join a.structures s

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 43
    Par défaut
    Et un nouveau bon point pour toi fr1man !! :-)
    Je croie que je vais finir par te citer dans les sources du projet ! ;-)
    Encore une fois merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Un peu de mal a comprendre le concepte "one-to-many" et "many-to-many"
    Par chriscoolletoubibe dans le forum Hibernate
    Réponses: 4
    Dernier message: 29/03/2007, 18h50
  2. HQL - relation many-to-many
    Par Foub dans le forum Hibernate
    Réponses: 2
    Dernier message: 17/02/2007, 12h06
  3. [HQL] "in expected" avec un many-to-many
    Par TigrouMeow dans le forum Hibernate
    Réponses: 2
    Dernier message: 22/12/2006, 13h57
  4. Réponses: 1
    Dernier message: 03/12/2006, 20h56
  5. pb pour créer des index [too many keys]
    Par Issam dans le forum Débuter
    Réponses: 3
    Dernier message: 19/01/2005, 20h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo