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 :

Relation ManyToMany sans table de jointure


Sujet :

JPA Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 187
    Points : 65
    Points
    65
    Par défaut Relation ManyToMany sans table de jointure
    Bonjour

    J'ai un souci, je souhaite faire un mapping jpa entre deux tables ayant une relation N:N mais sans faire de table de jointure
    Ex:

    Une table "développeur" et une table "projet". Chaque développeur peut être associé à plusieurs projets et chaque projet peut avoir plusieurs développeurs

    Developpeur
    -------------
    IDDEVELOPPEUR
    NOM
    PRENOM



    PROJET
    -------
    IDPROJET
    NOMPROJET


    Une solution serait d'utiliser des deux côtés une annotation OneToMany mais ça ne fonctionne pas chez moi ... :/

  2. #2
    Membre expérimenté

    Homme Profil pro
    Senior Développeur JEE
    Inscrit en
    Avril 2002
    Messages
    795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Senior Développeur JEE
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2002
    Messages : 795
    Points : 1 660
    Points
    1 660
    Par défaut
    Je ne comprends pas l'utilité d'utiliser un @OneToMany dans ce cas.

    Simplement utiliser un @ManyToMany de chaque coté avec un "JoinTable", "joinColumns" et "inverseJoinColumns"

    Entité Developer

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    @ManyToMany(cascade=CascadeType.ALL)
    @JoinTable(name = "developer_project",
    joinColumns = {
    @JoinColumn(name="developerId") 
    },
    inverseJoinColumns = {
    @JoinColumn(name="projectId")
    }
    )
    List<Projects> projects;

    Entité Project

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    @ManyToMany(cascade=CascadeType.ALL)
    @JoinTable(name = "developer_project",
    joinColumns = {
    @JoinColumn(name="projectId") 
    },
    inverseJoinColumns = {
    @JoinColumn(name="developerId")
    }
    )
    List<Developer> developers;
    Langages : Java, SQL
    Outils : Eclipse, Intellij
    SGBD : Oracle, PostgreSQL
    Mes Articles

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 187
    Points : 65
    Points
    65
    Par défaut
    Merci pour votre réponse

    Cependant, je ne souhaite justement pas avoir de table de jointure. Je suis sur un projet client, je ne peux pas faire de nouvelles tables donc j'essaye de trouver une solution :/

  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
    Sans table de jointure tu ne pourras pas gérer une relation many-to-many.

  5. #5
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Points : 2 061
    Points
    2 061
    Par défaut
    bonjour,
    J'ajouterais a ce qu'a dit fr1man que si tu n'as pas de table de jointure comment veux tu faire le lien entre Développeur et projet si tu n'as rien dans la base, car il faut bien stocker les informations concernant la relation quelque part !
    Et si tu ne l'as pas dans la base, ou penses tu faire le lien entre les deux ?
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. [1.x] formulaire imbriqué relation n:n table de jointure
    Par symfony30000 dans le forum Symfony
    Réponses: 15
    Dernier message: 27/04/2010, 14h12
  2. Réponses: 1
    Dernier message: 10/06/2009, 14h15
  3. Lien ManyToMany sans table de liaison?
    Par HerQuLe dans le forum Hibernate
    Réponses: 5
    Dernier message: 09/03/2009, 11h36
  4. Relations entre des tables sans clef
    Par ouamtax dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 22/09/2008, 23h23
  5. Table de jointure relation n:n et création en SQL
    Par thibouille dans le forum Bases de données
    Réponses: 2
    Dernier message: 11/11/2007, 15h17

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