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 :

Association many to one : doublons ?


Sujet :

Hibernate Java

  1. #1
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 16
    Par défaut Association many to one : doublons ?
    Bonjour,
    J'ai un soucis concernant mes fichiers de mapping (reprise d'une application).
    J'ai 3 tables : Utilisateur, Profil et CFA.
    Un utilisateur n'a qu'un seul profil et CFA, et un profil et un CFA ont n utilisateur.
    Dans mon fichier de mapping, je déclare en property mes champs CODE_PROFIL et CODE_CFA, mais aussi à la fin en many to one.
    Le fichier de mapping d'utilisateur
    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
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    <?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC
    	"-//Hibernate/Hibernate Mapping DTD//EN"
    	"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd" >
     
    <hibernate-mapping package="com.bull.crnpc.hibernate">
    	<class name="TeUtilisateur" table="TE_UTILISATEUR">
    		<id
    			column="CODE_UTILISATEUR"
    			name="CodeUtilisateur"
    			type="string"
    		>
    			<generator class="assigned" />
    		</id>
    		<property
    			column="CODE_CFA"
    			length="11"
    			name="CodeCfa"
    			not-null="true"
    			type="integer"
    		 />
    		<property
    			column="MOT_PASSE"
    			length="15"
    			name="MotPasse"
    			not-null="false"
    			type="string"
    		 />
    		<property
    			column="TEL_UTIL"
    			length="14"
    			name="TelUtil"
    			not-null="false"
    			type="string"
    		 />
    		<property
    			column="E_MAIL_UTIL"
    			length="200"
    			name="EMailUtil"
    			not-null="false"
    			type="string"
    		 />
    		<property
    			column="PRENOM_UTIL"
    			length="30"
    			name="PrenomUtil"
    			not-null="false"
    			type="string"
    		 />
    		<property
    			column="CODE_ANTENNE"
    			length="11"
    			name="CodeAntenne"
    			not-null="true"
    			type="integer"
    		 />
    		<property
    			column="CODE_PROFIL"
    			length="10"
    			name="CodeProfil"
    			not-null="false"
    			type="string"
    		 />
    		<property
    			column="TITRE_UTIL"
    			length="6"
    			name="TitreUtil"
    			not-null="false"
    			type="java.lang.Short"
    		 />
    		<property
    			column="LOGIN"
    			length="15"
    			name="Login"
    			not-null="false"
    			type="string"
    		 />
    		<property
    			column="NOM_UTILISATEUR"
    			length="30"
    			name="NomUtilisateur"
    			not-null="false"
    			type="string"
    		 />
     
    	<many-to-one name="utilisateurProfil" insert="false" update="false" class="com.bull.crnpc.hibernate.TeProfilUtil" column="CODE_PROFIL"/>
     
    	<many-to-one name="utilisateurCfa" insert="false" update="false" class="com.bull.crnpc.hibernate.TeCfa" column="CODE_CFA" not-null="false"/>
     
    	</class>
    </hibernate-mapping>
    Je me demande si l'un n'est pas en trop, en l'occurence le property.

    Merci de vos réponses.

  2. #2
    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
    Effectivement, puisque tu veux exprimer une relation un-un, une many-to-one, suffit. Tu peux enlever les property.
    Rajoute cependant à ton many-to-one, un unique = true.

  3. #3
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 16
    Par défaut
    Ce n'est pas un relation un-un, puisque les profil-cfa peuvent avoir plusieurs utilisateurs.

    Est-ce avantageux au niveau chargement des données de conserver ce doublons ?

  4. #4
    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
    Oups, j'ai lu trop vite.
    Donc laisse ton many-to-one, mais vire le unique = true que j'ai indiqué.

    Ca n'a pas de sens de laisser un property en plus du many-to-one.
    Les relations entre tables se gèrent avec les many-to-* ou one-to-*.
    Les property sont pour les types "simples".

  5. #5
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 16
    Par défaut
    Ok merci pour tes réponses.

    Une dernière chose. La page d'affichage de mes utilisateurs met un temps fou à s'afficher (10 minutes chrono).
    En effet, les tables profils et cfa sont reliées à d'autres tables, elles-mêmes reliées à d'autres tables etc. Je finis par rappatrier toute ma base
    Ya-t-il un moyen d'empecher ça et de remonter juste ce que j'ai besoin ?

  6. #6
    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
    Ca dépend du nombre de données que tu essaie de récupérer.

    Si tu es en Hibernate 3, le lazy = true étant pas défaut, ça n'est pas censé te charger toute ta base.

  7. #7
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 16
    Par défaut
    Ah, ben je suis en hibernate 2...
    Me reste plus qu'à passer au 3 ou mettre des lazy partout

    Merci pour tes réponses et ta réactivité.

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 10/04/2012, 15h42
  2. Liste null sur une association many-to-one
    Par nicolas_isi dans le forum Hibernate
    Réponses: 4
    Dernier message: 30/04/2010, 16h32
  3. association many-to-one hibernate
    Par sup dans le forum Hibernate
    Réponses: 15
    Dernier message: 10/05/2007, 15h17
  4. association many-to-one hibernate
    Par sup dans le forum Hibernate
    Réponses: 1
    Dernier message: 05/05/2007, 18h50
  5. [hibernate] "many-to-one"
    Par mehdi_swatch dans le forum Hibernate
    Réponses: 26
    Dernier message: 12/05/2006, 20h11

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