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.  [ 5 posts ] 
Author Message
 Post subject: mapping n utilisateurs - n groupes
PostPosted: Mon Apr 10, 2006 5:07 pm 
Regular
Regular

Joined: Wed Sep 21, 2005 1:37 pm
Posts: 53
Location: Montpellier - France
Ma question apparaît simple. Je souhaite mapper deux classes :
- groupe
- utilisateur


un utilisateur peut appartenir a n groupes
un groupe peut contenir n utilisateur.

il apparait un problème de synchronisation dans la base avec les deux collections indiquées ci-dessous.

Hibernate version: 3.0.2

Mapping documents:

pour les groups dans le mapping de l'utilisateur :

<set name="groups" table="GROUP_MEMBERS" cascade="none" lazy="true" node="groups" embed-xml="false" fetch="select">
<key column="user_id"/>
<many-to-many class="GroupBMP" column="group_id" outer-join="auto"/>
</set>

pour les utilisateurs dans le mapping du groupe :

<set name="members" inverse="true" table="GROUP_MEMBERS" cascade="all-delete-orphan" lazy="true" node="members" embed-xml="false" fetch="select">
<key column="group_id"/>
<many-to-many class="UserBMP" column="user_id" outer-join="auto"/>
</set>


Top
 Profile  
 
 Post subject:
PostPosted: Wed Apr 12, 2006 4:27 pm 
Regular
Regular

Joined: Wed Sep 21, 2005 1:37 pm
Posts: 53
Location: Montpellier - France
Un autre truc bizarre est que l'ajout ne se fait pas.

group.getMembers().add(user);

donne group.getMembers().size() = 0 alors que 'user' et 'group' sont bien persistants.


Top
 Profile  
 
 Post subject:
PostPosted: Wed May 17, 2006 6:00 pm 
Proxool Developer
Proxool Developer

Joined: Tue Aug 26, 2003 10:42 am
Posts: 373
Location: Belgium
Parce que la collection group.members est mappee comme inverse de user.groups.

La relation est donc geree par l'entite utilisateur et nom le groupe.
Tu dois donc ajouter le group a l'utilisateur et nom l'utilisateur au groupe (ou inverser le sens de ta relation).

Lors de l'utilisation d'une relation inverse (one-to-many ou many-to-many), les changements operes dans le cote inverse ne sont pas transmis a la db par Hibernate (c'est la le sens du inverse).

(any credits if helpful?)


Top
 Profile  
 
 Post subject:
PostPosted: Thu May 18, 2006 1:53 am 
Regular
Regular

Joined: Wed Sep 21, 2005 1:37 pm
Posts: 53
Location: Montpellier - France
Merci


Top
 Profile  
 
 Post subject:
PostPosted: Thu May 18, 2006 4:01 am 
Proxool Developer
Proxool Developer

Joined: Tue Aug 26, 2003 10:42 am
Posts: 373
Location: Belgium
infodavid wrote:
Merci

Si la reponse te convient, peux-tu penser a me gratifier d'un petit credit ? Merci.


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

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.