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

Java EE Discussion :

@ManyToMany Ajouter information


Sujet :

Java EE

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Novembre 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 12
    Par défaut @ManyToMany Ajouter information
    Bonjour,

    J'ai un problème. J'ai une relation nn en 2 tables. J'écris donc le code suivant:
    @ManyToMany(cascade=javax.persistence.CascadeType.ALL,fetch=FetchType.EAGER)
    @JoinTable(name="room_fee", joinColumns = @JoinColumn(name = "room_id", referencedColumnName="id"), inverseJoinColumns = @JoinColumn(name = "fee_id", referencedColumnName="id"))

    private Set<Fee> fees = new HashSet<Fee>();


    Hors, je voudrai ajouter une information sur cette association, un champ int. Comment faire?

    Merci

  2. #2
    Membre chevronné Avatar de deY!
    Inscrit en
    Avril 2006
    Messages
    403
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2006
    Messages : 403
    Par défaut
    Quelle type d'information ? Détail un peu plus la relation...

  3. #3
    Membre confirmé Avatar de yashiro
    Inscrit en
    Mars 2004
    Messages
    214
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 214
    Par défaut
    Effectivement, comme le dit deY, il faudrais peut-être être plus clair. Ce champ représente quoi dans ta relation:

    Personnellement, je sais que dans l'analyse MERISE, une association n-n peut avoir des attribut. Ce type d'association donne souvent naissance à des relations qui possèdent des attribut.

    Si c'est cela que tu veux dire, je te dirai 2 choses:

    D'abord, ne mélange pas l'analyse RELATIONNELLE (MERISE) avec l'analyse Objet (Objectory, etc...).
    Maintenant, si tu veux définir des relation comme celle-là, il faudras que tu utilise le concept de relation n-n avec table de jointure explicite.
    En effet, lorsque tu travaille comme tu l'as fait, la table de jointure est crée et gérée automatiquement par la couche de persistance (JPA/Hibernate...) de façon transparente. de ce fait, tu ne peux pas ajouter des champs dans la table de jointure.

    Par exemple: Une Personne achete n Marque de voiture, et une marque de voiture est achetée par n Personne: C'est une relation n-n entre Personne et Marque. et la relation Achete possède un champ Date d'achat

    tu peux la représenter comme tu l'as fait (avec 2 entité Personne et Marque reliées entre elles par une relation n-n). De cette façon il te sera difficile d'y ajouter ton champ DateD'achat

    Mais tu peux aussi créer de façon explicite une entité qui représentera la relation Achete et qui possèdera un champ Date. Cette Entité aura une clé composée de la clé des 2 premières Entités (clé composée: EmbeddedId)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    @Embedded
    public class ClassId
    {
       Date dateAchat;
       int IdPersonne;
       int IdMarque;
     
     
       // Getters/Setters
    }
    puis dans la classe Achat

    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
     
    @Entity
    @Table...
    public class Achat
    {
       @EmbeddedId...
       ClassId id;
     
       // Relation avec Personne
       @OneToMany...
       Set<Personne> p;
     
       // Relation avec Marque
       @OneToMany...
       Set<Marque> m;
    }
    En ce moment, tu aura 2 relations: Personne <-> Achete et Marque <-> Achete. Chacune de ces relations sera une relation 1-n. Malhereusement, tu devra gérer cette relation toi-même avec les clés composée.
    Pour mieux le comprendre, je te conseille le cours de Serge Tahé sur l'Introduction à JPA qui est sur le site.

Discussions similaires

  1. Php fpdf - Ajouter information dans le footer
    Par Mika2008 dans le forum Langage
    Réponses: 0
    Dernier message: 16/05/2014, 10h01
  2. Ajouter informations à un contact
    Par remy67 dans le forum Android
    Réponses: 4
    Dernier message: 23/07/2012, 20h13
  3. Ajout information dans header xml avec xsl
    Par dumser1 dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 17/12/2009, 09h26
  4. Debutant-Ajout information dans table
    Par shub dans le forum Access
    Réponses: 11
    Dernier message: 24/04/2006, 12h42
  5. Demande d'information pour ajout d'API Java dans eclipse
    Par BernardT dans le forum Eclipse Java
    Réponses: 6
    Dernier message: 07/07/2005, 17h08

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