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 :

Association entre trois classes


Sujet :

JPA Java

  1. #1
    Membre du Club
    Inscrit en
    Mars 2011
    Messages
    232
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 232
    Points : 47
    Points
    47
    Par défaut Association entre trois classes
    salut,

    je suis entrain de développer trois class : TechnicalSkill, Expertise et Request

    la relation entre ces class est manyToMany

    la class Request.java

    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
    @Entity
    public class Request implements Serializable{
     
     
    	/**
             * 
             */
    	private static final long serialVersionUID = 1L;
    	@Id
    	@GeneratedValue(strategy = GenerationType.AUTO)
    	private Integer requestId;
    	private String detailRequest;
     
    	private String place;
     
     
     
    	@ManyToMany(mappedBy="requests")
    	private List<Expertise> expertises;
     
     
    ...
    //getter , setter and constructor
    }
    la class Expertise.java
    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
    @Entity
    public class Expertise implements Serializable {
     
    	/**
             * 
             */
    	private static final long serialVersionUID = 1L;
    	 @Id
    	 @GeneratedValue(strategy = GenerationType.AUTO)
    	private int idExpertise;
    	private String seniority;
    	@ManyToMany(mappedBy="expertises")
    	private List<TechnicalSkill> technicalSkills=new ArrayList<TechnicalSkill>();
     
     
    	@ManyToMany
    	private List<Request> requests=new ArrayList<Request>();
     
     
     
    ....
    //getter , setter and constructor
    }

    la class TechnicalSkill.java

    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
    @Entity
    public class TechnicalSkill implements Serializable{
     
    	/**
             * 
             */
    	private static final long serialVersionUID = 1L;
     
    	 @Id
    	 @GeneratedValue(strategy = GenerationType.AUTO)
    	private int idTechnicalSkill;
    	private String description;
    	@ManyToMany
    	private List<Expertise> expertises=new ArrayList<Expertise>();
     
    ...
    //getter , setter and constructor
    }



    un scenario de test est le suivant :

    supposant j'ai dans la table request les informations suivants :

    1 --- formation1 --- France
    2 --- formation2 --- US

    supposant j'ai dans la table expertise les informations suivants :

    1 -- 3 ans
    2 -- 4 ans
    3 -- 6 ans
    4 -- 8 ans



    supposant j'ai dans la table technicalSkill les informations suivants :

    1 -- java
    2 -- android
    3 -- spring
    4 -- JEE


    le but à travers les types d'associations que j'ai fait (j’espère qu'ils sont juste) dans les class
    est d'avoir la possibilité de faire ce genre de test :

    formation1 peut avoir 3 ans d'experience en java et 3 ans android
    formation2 peut avoir 3 ans d'experience en java et 8 ans spring et 3 ans android

    comme vous voyez la "seniority" (3 ans ) pour java est commune dans les deux types de "request"


    j'ai ajouter manuellemnt des valeurs dans la table request , expertise et technicalSkill sans remplir la table d'association et dans la class main j'ai fait la relation entre class
    j'ai fait class main pour tester un scenario :



    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
    Expertise e=serviceExpertise.readById(1);
    	TechnicalSkill t=ServiceTeck.readById(1);
    Request r=reqService.readById(2);
    		List<Request> re=new ArrayList<Request>();
    		re.add(r);
     
    e.setRequests(re);
    List<Expertise> es=new ArrayList<Expertise>();
    es.add(e);
    r.setExpertises(es);
    t.setExpertises(es);
    serviceExpertise.update(e);
     
     
     
     
    		ServiceTeck.update(t);

    la table d'association sera repmlir avec succé mais supposant que j'ai une relation entre formation et 3 ans ( table association entre expertise et request 1 -- 1)
    et je veux faire autre relation formation2 et 3 ans la table d'association est remplir ( 2 -- 1) mais le problème est que la ligne (1 -- 1 ) est effacé ( c'est la relation : formation et 3 ans


    c'est grâce à l'utilisation de la methode update



    j’espère que j'arrive à expliquer mon problème

    en faite je veux quelqu'un pouvez m'aidez à corrigé l'association entre class que j'ai fait pour que j'arrive à faire un scenario comme

    formation1 peut avoir 3 ans d'experience en java et 3 ans android
    formation2 peut avoir 3 ans d'experience en java et 8 ans spring et 3 ans android

    et par la suite grâce au nom de la request ( formation2 ) je peux récupérer les information complète de cette request ( 3 ans d'experience en java et 8 ans spring et 3 ans android)

  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,
    je ne suis pas une lumière du coup j'ai pas bien tout saisie mais ce que je te propose c'est de bien poser les choses au niveau sql,
    en faire le schéma sur une base mysql ou derby(si tu ne veux pas installer mysql) et de procéder à un mappage avec un IDE tel que netbeans,
    ensuite pour la persistance des données tu devrais suivre dans l'ordre de sauvegarde des entités parent de l'association aux entités enfants,
    normalement avec un cascading et une binarité des relations bien fait un appel save merge ou update par entité parent devrait persister la totalité.

Discussions similaires

  1. Association entre deux classes (partager les methodes)
    Par shaiton dans le forum Débuter
    Réponses: 3
    Dernier message: 18/02/2009, 17h21
  2. Réponses: 7
    Dernier message: 25/08/2008, 16h13
  3. association entre 2 classes
    Par Panaméen dans le forum C++
    Réponses: 7
    Dernier message: 06/03/2008, 14h16
  4. Association entre deux classes en dotnet
    Par lulu3111 dans le forum C++/CLI
    Réponses: 4
    Dernier message: 18/04/2007, 21h15
  5. [MCD] Associations entre trois entités
    Par wolflinger dans le forum Schéma
    Réponses: 5
    Dernier message: 21/03/2006, 14h49

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