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 :

Mapper une association bidirectionnelle reflexive


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2007
    Messages : 68
    Par défaut Mapper une association bidirectionnelle reflexive
    Bonjour,

    Je cherche le mapping hibernate 3.0 pour faire une classe qui a une liste doublement chainée.

    Par exemple, une classe A qui a un objet de la classe A nommé prédécesseur et un objet de la classe A nommé successeur.

    A la manière des associations one-to-many, je pense qu'il faudra déclarer un côté "inverse", mais là je ne vois même pas quelle balise utiliser (one-to-one me semblait convenir mais je ne trouve pas d'inverse!).

  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 : 46
    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
    tu peux éventuellement utiliser un one-to-many bidirectionnel avec un unique="true" pour en faire un one-to-one

  3. #3
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2007
    Messages : 68
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    tu peux éventuellement utiliser un one-to-many bidirectionnel avec un unique="true" pour en faire un one-to-one
    Oui mais dans ce cas je ne vois pas comment mettre un reverse sur un one-to-many, j'aimerais qu'un seul attribut de la table A gère cette association bidirectionnelle.

  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 : 46
    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
    si il est bidirectionnel, un des sens de la bidirection doit avoir inverse=true, et tu n'aura de toutes facons qu'une foreign-key qui gère l'association.

  5. #5
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2007
    Messages : 68
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    si il est bidirectionnel, un des sens de la bidirection doit avoir inverse=true, et tu n'aura de toutes facons qu'une foreign-key qui gère l'association.
    C'est justement ce que je cherche à obtenir mais ma question est plus orienté "syntaxe" car à ma connaissance seules les balises de collections (set, bag, etc, ...) peuvent spécifier "inverse"

  6. #6
    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 : 46
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
                    <many-to-one name="previous"
                        column="previous_id"
                        unique="true"/>
    <one-to-one name="next" class="mypackage.Node" property-ref="previous"/>
    devrais marcher je pense ^^

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

Discussions similaires

  1. Récupération des objets d'une association bidirectionnelle
    Par mbenameur dans le forum Doctrine2
    Réponses: 5
    Dernier message: 28/12/2012, 16h49
  2. [Hibernate2] [Hibernate] Mapper une association
    Par seanbean dans le forum Hibernate
    Réponses: 6
    Dernier message: 18/11/2012, 22h03
  3. [Hibernate] Mapper une association (MCD)
    Par seanbean dans le forum Persistance des données
    Réponses: 0
    Dernier message: 12/04/2012, 13h41
  4. Mapper une association porteuse d'information
    Par cereal dans le forum Hibernate
    Réponses: 1
    Dernier message: 11/08/2009, 13h03
  5. Réponses: 7
    Dernier message: 25/08/2008, 16h13

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