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 :

[JPA2.0 les nouvelle annotation] Faire une relation avec une @collection comme un triangle relationnel


Sujet :

JPA Java

  1. #1
    Membre confirmé
    Avatar de geforce
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2010
    Messages
    1 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

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

    Informations forums :
    Inscription : Janvier 2010
    Messages : 1 055
    Points : 559
    Points
    559
    Par défaut [JPA2.0 les nouvelle annotation] Faire une relation avec une @collection comme un triangle relationnel
    Bonjour,

    Comme je suis débutant en JPA2.0 j'ai utilisé l'annotation @ElementCollection pour persister une liste primitive
    je les utilisé dans un cas pour l'entity "Wilya avec sa liste de Daira et de Commune"

    ci-joint le code de l'entity :
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    @Entity
    @Table(name = "t_wilaya")
    public class Wilaya implements Serializable {
        private static final long serialVersionUID = 1L;
     
        private Long id;
        private String libeller;
     
        private Collection<String> dairas;
        private Map<Integer, String> communes;    
     
     
        /* *********Geteur and Setter******** */
        @Id
        @Column(name="code_wilaya", nullable = false)
        public Long getId() { return id; }
        public void setId(Long id) { this.id = id; }
     
        @Column(nullable = false)
        public String getLibeller() { return libeller; }
        public void setLibeller(String libeller) { this.libeller = libeller; }
     
        @ElementCollection  
        @CollectionTable(name = "t_daira")
        @Column(name = "daira")    
        public Collection<String> getDairas() { return dairas; }
        public void setDairas(Collection<String> dairas) { this.dairas = dairas; }    
     
        @ElementCollection
        @CollectionTable(name="t_commune")
        @MapKeyColumn (name = "code_commune")  
        @Column(name = "commune")    
        public Map<Integer, String> getCommunes() { return communes; }
        public void setCommunes(Map<Integer, String> communes) { this.communes = communes; }
        /* ******************************** */
        }
    et son résultat en relationnel qui lui n'est pas exactement ce que je veux réaliser "il manque la relation entre Daira et Commune" pour faire un Triangle relationnel :
    Vue que actuelement sais une relation id_Wilya->avec Daira et id_Wilaya avec Commune

    • Ci-joint une capture de ce que donne le ma-pinge relationnel de cette entity + en Rouge ce quoi j'ai besoin en plus.


    Donc comment je peux fait une Relation entre met deux liste avec qui j’utilise l'annotation @ElementCollection. (de façon à savoir si je choisie une Daira j’ai une relation qui me dit voilà sa liste de commune de cette Daira)
    Images attachées Images attachées  

  2. #2
    Membre confirmé
    Avatar de Khaled.Noordin
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    354
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 354
    Points : 497
    Points
    497
    Billets dans le blog
    1
    Par défaut
    Salut
    Le triangle relationnel je ne connais pas ce terme dans des approches comme Merise, donc si tu pouvais joindre à ton sujet un petit Modèle Conceptuel de Données(MCD) ou un diagramme de classe UML cela serait plus parlant que les termes que tu emplois, dans le but de t'aider à trouver une solution à ton souci.

    Cordialement Khaled.Noordin

  3. #3
    Membre confirmé
    Avatar de geforce
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2010
    Messages
    1 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

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

    Informations forums :
    Inscription : Janvier 2010
    Messages : 1 055
    Points : 559
    Points
    559
    Par défaut
    Bonjour,

    j'ai donc mit a jour mon premier poste avec cette ligne
    • Ci-joint une capture de ce que donne le ma-pinge relationnel de cette entity + en Rouge ce quoi j'ai besoin en plus.


    Merci d'avance pour vos remarque constructive

  4. #4
    Membre confirmé
    Avatar de Khaled.Noordin
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    354
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 354
    Points : 497
    Points
    497
    Billets dans le blog
    1
    Par défaut
    Salut
    Est ce que ton besoin tu sais le faire en sql?
    Si oui, alors utilise la génération d'entités a partir d'une table de base de données et le problème est résolue, en sachant que la génération n'utilise pas les choses exotiques que jpa apporte.
    Si non, alors un petit schéma comme suggéré aidera à visualiser le système d'information visé, plugin schéma merise pour netbeans

    cordialement Khaled.Noordin

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

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 951
    Points : 4 376
    Points
    4 376
    Par défaut
    Les relations ne s'établissent qu'entre classes @Entity, vos @ElementCollection ne contiennent ici que des types primitifs (String, Integer) : ce n'est pas la bonne direction.

    Et en fait @ElementCollection ne peut être utilisé pour ce que vous voulez faire : @ElementCollection peut contenir des @Embeddable mais la navigation se fera toujours à partir de l'@Entity qui la contient : il sera toujours impossible d'y accéder autrement, ce qu'impliquerait d'avoir d'autres relations comme celles dont vous parlez.

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/04/2015, 11h17
  2. Réponses: 15
    Dernier message: 26/01/2015, 19h37
  3. [Doctrine] Faire une sélection avec une relation "inversée"
    Par Gp2mv3 dans le forum ORM
    Réponses: 2
    Dernier message: 08/02/2011, 19h23
  4. [XL-2002] Macro de comparaison d'une cellule d'une feuille avec une cellule d'une autre feuille.
    Par steelydan dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/09/2010, 12h59
  5. Réponses: 4
    Dernier message: 15/10/2009, 13h33

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