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 :

Mapping JPA : Composite Key


Sujet :

JPA Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Inscrit en
    Juin 2005
    Messages
    210
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 210
    Par défaut Mapping JPA : Composite Key
    Bonjour à tous,

    Je fais appel a vous car je galère a résoudre mon problème.
    J'ai :
    - une entité "Article"
    - une entité "Lang"
    - une entité "ArticleLang"

    dans ArticleLang j'ai donc 2 propriété Article (ManyToOne avec un mappedBy=article_id) et Lang (ManyToOne avec un mappedBy=lang_id)

    et donc j'aimerais que la clé de ArticleLang soit composé d'article_id et de lang_id.

    J'ai fais une tentative en mettant des @Id sur mes 2 proprétié mais quand j'essaye de générer la base via un maven hbm2ddl ... il n'est pas content ....

    Si quelqu'un peut m'aider ça serait super car c'est assez urgent !

    Merci d'avance.

  2. #2
    Futur Membre du Club
    Inscrit en
    Mai 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 4
    Par défaut
    je sais pas si ça peut t'aider mais essayons quand moi g l'habitude de générer les classes entité avec l'EDI Netbeans essaie de connecter NB à ta BD et tu genere les entity class. L'analyse du code généré des classes en question t'éclairera un peu. Bne Chance

  3. #3
    Membre très actif
    Inscrit en
    Juin 2005
    Messages
    210
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 210
    Par défaut
    Alors déjà je n'utilise pas NetBeans ...
    Et ensuite je ne veux partir de la BDD pour générer mes entités ...
    C'est a mon sens contraire à la POO ... mais bon a la rigueur pourquoi pas ....

    Donc si jamais quelqu'un a un exemple je suis toujours preneur.

    Merci d'avance

  4. #4
    Membre expérimenté Avatar de Shinzul
    Homme Profil pro
    Lecteur assidu de code source
    Inscrit en
    Janvier 2008
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Lecteur assidu de code source
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2008
    Messages : 174
    Par défaut
    Hum par rapport a ce que tu donne j'ai juste une question

    Ton entity ArticleLang n'a pas l'air d'avoir d'autres attributs que les clef vers les autres entités. Donc pourquoi tu ne passe pas par un @ManyToMany.

    Un petit exemple rapide :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    @ManyToMany
    @JoinTable(name="ARTICLE_LANG",
        joinColumns=
                @JoinColumn(name="LANG_ID", referencedColumnName="ID"),
        inverseJoinColumns=
                @JoinColumn(name="ARTICLE_ID", referencedColumnName="ID")
        )
    List<Article> articles;

  5. #5
    Membre très actif
    Inscrit en
    Juin 2005
    Messages
    210
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 210
    Par défaut
    Et bien tout simplement parce qu'il y a d'autres attributs.
    En fait cette entité sert a stocker les traductions des articles.

    Mais j'ai finalement réussi hier soir en sortant la clé composé dans une class et en utilisant @Embeddable et @EmdeddedId ....
    Mais je trouve que c'est un peu mal foutu ....ça aurait été tellement plus simple de mettre 2 @Id sur mes 2 attributs @ManyToOne ... enfin bon ...

    Sinon pour détailler un peu le système d’internationalisation voilà comment ça marche :
    en fait dans mon entité Article j'ai une Map vers ArticleLang ....
    Ce qui me permet de faire au niveau de ma JSP qqch du genre :
    Article.articleLang['fr'] .... ce qui me permet de récupérer direct la bonne traduction
    dans mon cas je passe a la place du "fr" une variable qui contient la langue courante.
    Bien pratique les Map pour l’internationalisation ou même pour gérer un panier

  6. #6
    Membre expérimenté Avatar de Shinzul
    Homme Profil pro
    Lecteur assidu de code source
    Inscrit en
    Janvier 2008
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Lecteur assidu de code source
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2008
    Messages : 174
    Par défaut
    Hum ok,

    C'est juste que a la vu de ton post comme ce n'est pas indiqué, je me suis posé la question de la clef composite .

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

Discussions similaires

  1. Mapping Hibernate : <composite-id>
    Par tome tome dans le forum Hibernate
    Réponses: 6
    Dernier message: 10/11/2009, 14h18
  2. Réponses: 0
    Dernier message: 06/11/2008, 14h28
  3. [Annotation]Configuration avec Spring+composite key
    Par helios2092 dans le forum Hibernate
    Réponses: 1
    Dernier message: 25/06/2008, 11h56
  4. [mapping] composite key et objet en même temps
    Par Invité dans le forum Hibernate
    Réponses: 5
    Dernier message: 21/09/2006, 14h15

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