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 :

Liste null sur une association many-to-one


Sujet :

Hibernate Java

  1. #1
    Membre confirmé
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    171
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 171
    Par défaut Liste null sur une association many-to-one
    Bonjour,

    Je développe une application web JEE. J'utilise hibernate.

    J'ai une table Risk et une table RiskHistory. La table RiskHistory est mappée en many-to-one vers la table Risk. J'ai une liste de RiskHistory dans ma classe Risk.

    Mon problème est que quand je veux me servir cette liste, elle est nulle. Savez vous d'où ça provient ?

    Le mapping de RiskHistory :
    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
    <?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    <hibernate-mapping package="com.infotel.RMPTool.bean">
        <class name="RiskHistory" table="riskhistory">
    		<id name="id" type="long">
                <column name="id_risk_history" not-null="true" />
                <generator class="identity" />
        	</id>
    		<property name="dateRecord" type="java.lang.String">
                <column name="date_record" not-null="true" />
        	</property>
    		<property name="gravity" type="float">
                <column name="gravity" not-null="true" />
        	</property>
        	<many-to-one name="ref_risk" column="ref_risk" class="Risk" lazy="false" />
        </class>
    </hibernate-mapping>
    Le mapping de Risk :
    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
    <?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    <hibernate-mapping package="com.infotel.RMPTool.bean">
        <class name="Risk" table="risk">
    		<id name="id" type="long">
                <column name="id_risk" not-null="true" />
                <generator class="identity" />
        	</id>
    		...
    		<property name="status" type="java.lang.String">
                <column name="status" not-null="true" />
        	</property>
        	 <set name="refAction" table="actionhasrisk" lazy="false">
                <key column="id_risk" />
                <many-to-many column="id_action" class="Action" />
            </set>
          	<many-to-one name="refType" column="ref_type" class="Type" lazy="false" />
        	<property name="idRefType" type="long" insert="false" update="false">
                <column name="ref_type" />
        	</property>
        	<many-to-one name="refGroup" column="ref_group" class="Group" lazy="false" />
        	<property name="idRefGroup" type="long" insert="false" update="false">
                <column name="ref_group" />
        	</property>
        	<property name="refOperation" type="long">
                <column name="ref_operation" />
        	</property>
        </class>
    </hibernate-mapping>
    PS : Je n'utilise pas le Lasy loading.

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Je ne vois pas, dans ton mapping de Risk, d'netrée qui corresponde à cette liste de RiskHistory. Si tu ne mappe pas la liste, hibernante ne va pas la remplir.

  3. #3
    Membre confirmé
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    171
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 171
    Par défaut
    Ok ok je crois que je commence à comprendre. En fait il faudrait que je mette un one-to-many dans le mapping de Risk ?

    PS : je débute avec Hibernate

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    many-to-one = plusieurs qui pointent vers le même, donc ca correspond à une propriété en java.

    one-to-many = un qui pointe vers plusieurs, donc ca correspond à une List en java.

    Tu dit que ta liste est vide, mais je ne vois aucun one-to-many dans ton mapping. A mon avis t'as confondu one-to-many et many-to-one

  5. #5
    Membre confirmé
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    171
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 171
    Par défaut
    En fait ce n'est pas moi qui ai fait ces fichiers de mapping. Je pense juste que mon prédécesseur a oublié (ou n'a pas eu le besoin) d'utiliser une liste de RiskHistory d'un Risk.

    En tout cas j'ai rajouté dans le mapping de Risk un one-to-many et ça marche.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <set name="ref_risk_history" cascade="all" lazy="false">
        		<key column="ref_risk" />
        		<one-to-many class="RiskHistory" />
        	</set>
    Merci pour ton aide tchize_,
    Nicolas

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 10/04/2012, 15h42
  2. Réponses: 0
    Dernier message: 12/02/2012, 17h02
  3. Double restriction sur une association "many to many"
    Par id3user dans le forum Hibernate
    Réponses: 0
    Dernier message: 17/05/2010, 09h42
  4. [SYBASE ASE] Rajouter une contrainte null sur une colonne
    Par Little_Goldo dans le forum Sybase
    Réponses: 1
    Dernier message: 09/02/2005, 10h48
  5. Contraite NULL sur une colonne en fonction d'une autre colon
    Par speedy1496 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 25/04/2004, 19h29

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