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

JPA Java Discussion :

Table d'association avec clé primaire composée de 3 clés étrangères


Sujet :

JPA Java

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2010
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 12
    Points : 10
    Points
    10
    Par défaut Table d'association avec clé primaire composée de 3 clés étrangères
    Bonjour,

    J'essaye de faire un projet dans lequel il y a une table d'association ayant comme clé primaire la composition de 3 clés primaires d'autres tables + 1 date :

    les trois tables :
    table compte (idcompte,nomcompte,...)
    table produit (idproduit,categorieproduit,...)
    table magasin (idmagasin,nommagasin,...)

    et donc la table achat (table d'association) qui a comme clé primaire (idcompte,idproduit,idmagasin et date)

    en java j'aimerais savoir comment vous feriez pour persister (par annotations) ceci

    Dans ma classe magasin par exemple, je stock la liste des différents achats qu'il y a eu

    @OneToMany(cascade = CascadeType.ALL) .....
    private Set<achat> ventes;

    en sachant que dans achat j'ai créé un achatPK qui correspond a la clé primaire composée


    Merci d'avance de votre aide, et s'il y a des questions n'hésitez pas !!

  2. #2
    Membre confirmé Avatar de Lordsephiroth
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2006
    Messages : 199
    Points : 494
    Points
    494
    Par défaut
    Salut, voici quelques points directeurs :

    Tu as une clé primaire sur trois champs dans ton entité Achat. Tu devrais donc avoir une entité de clé primaire composée ressemblant à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    @Embeddable
    public class AchatEntityPk{
      private Integer compteId;
      private Integer produitId;
      private Integer magasinId;
     
      @Column(name="ton_champ_de_clé_étrangère")
      public Integer getCompteId()
        return compteId;
      }
     
      // autres getters et setters pour produitId et magasinId
    }
    Cette classe peut ensuite devenir une clé primaire dans ta classe AchatEntity :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    @Entity
    @Table(name ="ta_table_pour_les_achats")
    public class AchatEntity{
      private AchatEntityPK pk;
      private ... // autres champs caractérisant ton achat
     
      @EmbeddedId
      public AchatEntityPk getPk(){
        return pk;
      }
     
      // autres getters / setters
    }
    J'espère que ça répond à ta question. Ensuite le code pour insérer un objet est très simple et ressemble à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    AchatEntity achat = new AchatEntity();
    AchatEntityPk pk = new AchatEntityPk();
    pk.setCompteId(// valeur);
    pk.setProduitId(// valeur);
    pk.setMagasinId(// valeur);
    achat.setPk(pk);
    // autres setters pour les champs de l'entité Achat
    entityManager.persist(achat);
    J'ai fait le code de tête, pardon si le copier/coller ne fonctionne pas du premier coup

    Les points principaux sont les annotations @Embeddable et @EmbeddedId

    Bonne chance

Discussions similaires

  1. table d'association et clef primaire
    Par lazuli dans le forum JPA
    Réponses: 1
    Dernier message: 02/12/2009, 14h15
  2. Réponses: 2
    Dernier message: 19/04/2009, 20h20
  3. Clé primaire composées de plusieurs clés étrangères
    Par 2berte dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 10/02/2009, 16h56
  4. Table d'association avec attribut
    Par SheenaRingo dans le forum Hibernate
    Réponses: 5
    Dernier message: 23/10/2008, 12h04
  5. clé primaire composée de 2 clés étrangères
    Par Tigresse dans le forum Installation
    Réponses: 5
    Dernier message: 28/07/2003, 14h38

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