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 3 clés primaires


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
    Avril 2005
    Messages
    55
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2005
    Messages : 55
    Par défaut probleme 3 clés primaires
    bonjour,

    j'ai un soucis... j'ai trois tables que je dois joindre par une 4 tables créée par hibernate.
    tout marche sauf que la table créée n'a que 2 clés primaires(zone_id et role_id) alors que utilisateur_id devrait aussi en etre une... help!

    mapping:
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
     
    	<class name="Role" table="ROLE">
    		<id name="id" column="ROLE_ID">
    			<generator class="native"/>
    		</id>
    		<property name="nom"/>
    		<set name="utilisateurs" table="USER_ROLE_ZONE">
    			<key column="ROLE_ID" not-null="true"/>
    			<many-to-many column="UTILISATEUR_ID" class="Utilisateur"/>
    		</set>
    		<many-to-one name="typeRole"
    			column="TYPEROLE"
    			not-null="true"/>
    		<set name="zones" table="USER_ROLE_ZONE">
    			<key column="ROLE_ID" not-null="true"/>
    			<many-to-many column="ZONE_ID" class="Zone"/>
    		</set>
    	</class>
     
     
     
    <class name="Zone" table="ZONE">
    		<id name="id" column="ZONE_ID">
    			<generator class="native"/>
    		</id>
    		<discriminator column="type" type="string"/>
    		<property name="libelle"/>
    		<property name="actif"/>
    		<set name="utilisateurs" table="USER_ROLE_ZONE">
    			<key column="ZONE_ID" not-null="true"/>
    			<many-to-many column="UTILISATEUR_ID" class="Utilisateur" />
    		</set>
    		<set name="roles" table="USER_ROLE_ZONE" inverse="true">
    			<key column="ZONE_ID" not-null="true"/>
    			<many-to-many column="ROLE_ID" class="Role"/>
    		</set>
    	</class>
     
    	<class name="Utilisateur" table="UTILISATEUR">
    		<id name="id" column="UTILISATEUR_ID">
    			<generator class="native"/>
    		</id>
    		<property name="firstname"/>
    		<property name="name"/>
    		<set name="zones"
    				table="USER_ROLE_ZONE" inverse="true">
    				<key column="UTILISATEUR_ID" not-null="true"/>
    				<many-to-many column="ZONE_ID"
    				unique="true" 
    				class="Zone"/>
    		</set>
    		<set name="roles"
    				table="USER_ROLE_ZONE" inverse="true">
    				<key column="UTILISATEUR_ID" not-null="true"/>		
    				<many-to-many column="ROLE_ID"
    				unique="true"
    				class="Role" />
    		</set>
    	</class>

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    55
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2005
    Messages : 55
    Par défaut
    bon pour ceux que ca pourrait interresser j'ai trouver une solution. je créé une 4eme classe avec le mapping suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <hibernate-mapping package="zone">
    	<class name="UtilisateurZoneRole" table="UTILISATEURZONEROLE">
    		<composite-id name="id" class="UtilisateurZoneRole$Id">
    		<key-many-to-one name="utilisateur" column="UTILISATEUR_ID"/>
    		<key-many-to-one name="zone" column="ZONE_ID"/>
    		<key-many-to-one name="role" column="ROLE_ID"/>
    		</composite-id>
    	</class>
    </hibernate-mapping>
    j'ai modifié les autres classes et mapping en consequence et voila. En fait il fallait chercher "association ternaire" (ou ternary association pour les plus bilingues)sur google et les reponses affluent!

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

Discussions similaires

  1. [C#] Probleme sur les clés primaires composites
    Par stardeus dans le forum Windows Forms
    Réponses: 7
    Dernier message: 12/02/2005, 23h28
  2. Comment avoir 2 clés primaires dans une table
    Par Guigui_ dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 18/01/2005, 08h29
  3. Problemes de clé primaire
    Par Dark_Setsuna dans le forum Oracle
    Réponses: 12
    Dernier message: 01/12/2004, 15h12
  4. [SGBDR]Clés primaires?
    Par vsavoir dans le forum Décisions SGBD
    Réponses: 7
    Dernier message: 21/11/2004, 22h48
  5. [postgresql]creer une table avec plusieurs clés primaire??
    Par perlgirl dans le forum Langage SQL
    Réponses: 2
    Dernier message: 09/11/2004, 17h24

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