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 :

Mapping unidirectionnel, d'un seul côté


Sujet :

Hibernate Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2011
    Messages : 13
    Points : 12
    Points
    12
    Par défaut Mapping unidirectionnel, d'un seul côté
    Bonjour !

    Voila je m'explique, je dispose de deux classes A et B, où B est lié à A par un lien many to one (A peut être lié à plusieurs B).

    Seulement comme la classe A vient d'un autre projet et qu'il serait préférable que je n'y touche pas, serait-il possible d'implémenter le mapping unidirectionnel seulement sur le mapping de B?

    La classe B devrait avoir un attribut A, mais les classes A n'ont pas d'attribut List<B>.

    Help plz!

  2. #2
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Oui tu peux faire une relation un à plusieurs unidirectionnelle.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2011
    Messages : 13
    Points : 12
    Points
    12
    Par défaut
    Merci d'une réponse aussi rapide ^^
    Oui je pense avoir trouvé la solution en farfouillant bien dans les sites...

    Ce serait d'écrire :

    <many-to-one
    name="A"
    column="id_A"
    cascade="all" unique="true"
    />
    tout simplement.

    Je n'ai pas encore pu le tester à cause d'autre problème d'import de projet mais corrigez moi si j'ai tort !

  4. #4
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Oui, à la syntaxe près, c'est ça.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2011
    Messages : 13
    Points : 12
    Points
    12
    Par défaut
    Seulement maintenant que je réétudie la chose j'aurai du côté de la classe A un attribut B non?

    J'aimerai juste avoir l'attribut A dans la classe B, mais rien dans la classe A ...

  6. #6
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    http://docs.jboss.org/hibernate/core...irectional-m21

    C'est ça que tu veux ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <class name="B">
        <id name="id" column="bId">
            <generator class="native"/>
        </id>
        <many-to-one name="a" 
            column="aId"
            not-null="true"/>
    </class>

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2011
    Messages : 13
    Points : 12
    Points
    12
    Par défaut
    J'ai réussi à contourner le problème en utilisant l'id de A plutôt que d'avoir la classe complète en attribut.

    Je m'étais inspiré de ton lien aussi mais je crois que j'avais mal compris ce que ça voulait dire, maintenant je crois avoir compris.
    Ca donne juste un attribut A pour la classe B en disant que A peut être constitué de plusieurs B "implicitement"...

    En tout cas thx for your help !

    C'est toujours plus facile à comprendre quand il y a un point de vue externe

  8. #8
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Je suis pas certain d'avoir tout compris.
    En tout cas, avec Hibernate, tu dois avoir des références vers de objets et non pas vers des id.
    De manière schématique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    class A {
     
    List<B> listeB;
     
    }
    ou
    class B {
     
    A a;
     
    }
    et non pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    class A {
     
    List<Long> listeIdB;
     
    }
    ou
    class B {
     
    Long idA;
     
    }

Discussions similaires

  1. Récupérer les éléments de deux map différentes en une seule boucle.
    Par floctc dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 19/05/2010, 15h50
  2. [MooTools] plusieurs carte google map dans une seule page
    Par vladimire dans le forum Bibliothèques & Frameworks
    Réponses: 0
    Dernier message: 03/03/2010, 22h15
  3. Deux mappings pour une seule et même classe
    Par myocean dans le forum Hibernate
    Réponses: 3
    Dernier message: 18/04/2008, 16h43
  4. Réponses: 2
    Dernier message: 10/08/2007, 11h46
  5. Réponses: 8
    Dernier message: 27/06/2006, 07h40

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