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 :

[Hibernate] Relation one to many


Sujet :

Hibernate Java

  1. #1
    Membre régulier
    Inscrit en
    Avril 2002
    Messages
    224
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 224
    Points : 116
    Points
    116
    Par défaut [Hibernate] Relation one to many
    Bonjour,

    Je débute avec Hibernate est j'ai du mal à comprendre les relations. Dans mon cas concret j'ai 2 entitée(Extraction et Réponse) une extration donne lieu à plusieurs réponses et une réponse appartient à une seule extraction. J'ai donc du coté d'extraction définit un mapping du type "one-to-many":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <hibernate-mapping> 
        <class name="fr.pagesjaunes.ocp.donnees.Extraction" table="extraction"> 
           <id name="idExtraction" column="idextraction"> 
              <generator class="increment"/> 
           </id> 
           <property name="labelExtraction" column="labelextraction" not-null="true" /> 
           <property name="dateCreationExtraction" column="datecreationextraction" not-null="true" /> 
           <set name="reponses" cascade="all" lazy="true" table="extraction"> 
              <key column="idextraction"/> 
              <one-to-many class="fr.pagesjaunes.ocp.donnees.Reponse"/>  
            </set> 
        </class> 
     </hibernate-mapping>
    Et du coté de la reponse comme cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <hibernate-mapping> 
     
        <class name="fr.pagesjaunes.ocp.donnees.Reponse" table="reponse"> 
           <id name="idReponse" column="idreponse"> 
              <generator class="increment"/> 
           </id> 
           <property name="nbParutions" column="nbparutions" not-null="true" /> 
           <property name="activites" column="activites" not-null="true" /> 
     
           </class> 
     
     </hibernate-mapping>
    Probléme, quand je souhaite récupéré la liste des réponses pour une extraction voici la réponse:

    could not resolve property: idextraction of: fr.pagesjaunes.ocp.donnees.Reponse [from fr.pagesjaunes.ocp.donnees.Reponse rep where rep.idextraction =7]
    at org.hibernate.persister.entity.AbstractPropertyMapping.throwPropertyException(AbstractPropertyMapping.java:43)
    at org.hibernate.persister.entity.AbstractPropertyMapping.toType(AbstractPropertyMapping.java:37)
    at org.hibernate.persister.entity.AbstractEntityPersist.............
    Merci de votre aide et bonne journée
    Petit à petit, l'oiseau fait son nid !

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 274
    Points : 307
    Points
    307
    Par défaut
    Bonjour,

    c'est normal, il cherche la propriété "idextraction" dans la table reponse (le mapping d'une relation one-to-many demande l'ajout d'une colonne de relation dans la table supportant la relation 1).
    Tu as donc ta liste de réponses coté extraction (Set reponses = new HashSet() et un champ identifiant l'extraction coté reponse (int extractionID; par exemple).

    il faut que tu rajoute une colonne dans ta table reponse (par exemple extraction_id) et que tu change ton 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
     
    <class name="fr.pagesjaunes.ocp.donnees.Extraction" table="extraction"> 
           <id name="idExtraction" column="idextraction"> 
              <generator class="increment"/> 
           </id> 
           <property name="labelExtraction" column="labelextraction" not-null="true" /> 
           <property name="dateCreationExtraction" column="datecreationextraction" not-null="true" /> 
           <set name="reponses" cascade="all" lazy="true" > 
              <key column="extraction_id"/> 
              <one-to-many class="fr.pagesjaunes.ocp.donnees.Reponse"/>  
            </set> 
        </class> 
     
    <class name="fr.pagesjaunes.ocp.donnees.Reponse" table="reponse"> 
           <id name="idReponse" column="idreponse"> 
              <generator class="increment"/> 
           </id> 
           <property name="nbParutions" column="nbparutions" not-null="true" /> 
           <property name="activites" column="activites" not-null="true" /> 
           <property name="extractionID" column="extraction_id" not-null="true" /> 
    </class>

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 28
    Points : 16
    Points
    16
    Par défaut
    est ce que cette propriété :
    <property name="extractionID" column="extraction_id" not-null="true" /> doit nécessairement être une clé étrangère dans la base?

    Admettons que j'ai un nouvel objet qui comme fr.pagesjaunes.ocp.donnees.Extraction possèdent plusieurs réponses, peut il lui aussi avoir un one-to-many vers cet objet?

Discussions similaires

  1. [Hibernate 2.1.6] Relation one-to-many
    Par GyZmoO dans le forum Hibernate
    Réponses: 0
    Dernier message: 08/09/2010, 10h44
  2. Réponses: 4
    Dernier message: 18/06/2007, 08h30
  3. [Hibernate] Mapping one-to-many + cle composite
    Par brainstorm dans le forum Hibernate
    Réponses: 2
    Dernier message: 23/06/2006, 10h51
  4. [hibernate] relation one-to-many avec plusieurs clés
    Par seb_fou dans le forum Hibernate
    Réponses: 6
    Dernier message: 16/03/2006, 14h47
  5. [EJB2.1 Entity] [CMR] Relation One to Many
    Par hamed dans le forum Java EE
    Réponses: 2
    Dernier message: 31/12/2003, 14h26

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