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 :

@ManyToMany, mais ou est passé la clé primaire?


Sujet :

JPA Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 10
    Par défaut @ManyToMany, mais ou est passé la clé primaire?
    Bonsoir tout le monde,

    Je dispose d'une relation N-N mappée par la fameuse annotation @ManyToMany. Jusque la, tout va bien. Sauf que si je regarde la table de jointure générée dans la base de données, il y a deux clés étrangères (jusque la ok) mais pas de clé primaire composée des deux clés étrangères Ceci est problèmatique car je tiens absolument à ce que ma table de jointure ne contiennent aucune relations dupliquées

    Ma question est donc comment puis-je ajouter dans la table de jointure une clé primaire (ou une contrainte d'unicitée) basé sur les deux clés étrangères ?

    L'application développée est basée sur OpenJPA 2.1.0 et Derby 10.7.

    En espérant être suffisament clair sur ma problèmatique

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 966
    Par défaut
    Citation Envoyé par Klesk Voir le message
    Bonsoir tout le monde,

    Je dispose d'une relation N-N mappée par la fameuse annotation @ManyToMany. Jusque la, tout va bien. Sauf que si je regarde la table de jointure générée dans la base de données, il y a deux clés étrangères (jusque la ok) mais pas de clé primaire composée des deux clés étrangères Ceci est problèmatique car je tiens absolument à ce que ma table de jointure ne contiennent aucune relations dupliquées

    Ma question est donc comment puis-je ajouter dans la table de jointure une clé primaire (ou une contrainte d'unicitée) basé sur les deux clés étrangères ?

    L'application développée est basée sur OpenJPA 2.1.0 et Derby 10.7.

    En espérant être suffisament clair sur ma problèmatique
    La contrainte primary key(foreign_1, foreign_2) dans la table intersection sera générée automatiquement si vous choisissez comme conteneur Java du @ManyToMany un conteneur qui implique l'unicité du contenu.

    Vous avez sans doute écrit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    @ManyToMany
    List<OtherSide> …
    au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    @ManyToMany
    Set<OtherSide> …

  3. #3
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 10
    Par défaut
    Bonsoir,

    j'ai effectivement utilisé des List au lieu de Set... Je vais tester la solution demain et je pense que vous avez raison !

    je confirme tout ca demain matin

  4. #4
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 10
    Par défaut
    Bonjour,

    Je fais suite au message d'hier soir; J'ai modifié les List en Set. Toutefois après reconstruction de la base de données la clé primaire n'est toujours pas créée. Le sera-t-elle lors de la première insertion de données ?

    (Je ne peut pas insérer de données dans la base pour le moment car je dois répercuter le passage de list a set dans toute l'application ).

  5. #5
    Membre Expert
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 966
    Par défaut
    Citation Envoyé par Klesk Voir le message
    Bonjour,

    Je fais suite au message d'hier soir; J'ai modifié les List en Set. Toutefois après reconstruction de la base de données la clé primaire n'est toujours pas créée. Le sera-t-elle lors de la première insertion de données ?

    (Je ne peut pas insérer de données dans la base pour le moment car je dois répercuter le passage de list a set dans toute l'application ).
    Aucune idée dans votre cas car cela dépend de l'ORM qui génère le DDL : or on utilise ici Hibernate et non OpenJPA et avec lui la génération du DDL comprend la PK composée dès que l'on utilise Set.

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/07/2008, 05h55
  2. Mais ou est passé le forum Générateurs d'états ?
    Par chtiot dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 1
    Dernier message: 26/03/2007, 09h20
  3. [VS2005] Assistance - mais ou est passé mon code ?
    Par arnolem dans le forum Visual Studio
    Réponses: 2
    Dernier message: 08/07/2006, 19h03
  4. Mais où est passé DirectShow?
    Par J-F dans le forum DirectX
    Réponses: 3
    Dernier message: 18/03/2006, 17h33
  5. [VC++ .NET] mais où est passée SignedXML ???
    Par benoitB dans le forum MFC
    Réponses: 4
    Dernier message: 30/04/2004, 09h14

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