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

Développement Web en Java Discussion :

Extraire relation entre deux classes modèles


Sujet :

Développement Web en Java

  1. #1
    Membre actif Avatar de janyoura
    Femme Profil pro
    étudiante ingénierie informatique
    Inscrit en
    Mars 2012
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : étudiante ingénierie informatique

    Informations forums :
    Inscription : Mars 2012
    Messages : 365
    Points : 279
    Points
    279
    Par défaut Extraire relation entre deux classes modèles
    Bonsoir,
    J'ai une difficulté à la création d'une classe "modèle". un risque peut appartenir à plusieurs départements et un département peut avoir plusieurs risques.
    Lorsque j'affiche les informations d'un risque, je dois aussi afficher parmi ces informations les départements qui peuvent être touchés par ce risque! est-ce possible? comment le faire alors? le fait qu'il existe plusieurs départements m’empêche d'envisager comment le faire.
    J'utilise une page .jsp, servlet qui récupère les informations du risque demandé et les retourne à la page .jsp
    y'a il un type que je peut donner à l'attribut département, comme une collection de classe département et puis je fais risque.getDepartement.getId() pour chaque département?

    Merci pour votre aide

    Voiçi le code peut etre ça éclairci mieux le travail
    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    package modele;
     
    import javax.persistence.Column;
     
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.GenerationType;
    import javax.persistence.Id;
    import javax.persistence.Table;
     
    import modele.Departement;
     
     
    @Entity
    @Table(name = "risque")
    public class Risque {
     
    	@Id
    	@GeneratedValue(strategy = GenerationType.AUTO)
    	@Column(name = "ID_RISQ")
    	private int id_ris;
     
    	@Column(name = "nom")
    	private String nom;
     
    	@Column(name = "type")
    	private String type;
     
    	@Column(name = "description")
    	private String description;
     
    	@Column(name = "departement")
    	private String departement;
     
    	@Column(name = "gravite")
    	private int gravite;
     
    	@Column(name = "probabilite")
    	private long probabilite;
     
    	@Column(name = "consequence")
    	private String conseq;
     
    	public int getId_ris() {
    		return id_ris;
    	}
     
    	public void setId_ris(int id_ris) {
    		this.id_ris = id_ris;
    	}
     
    	public String getNom() {
    		return nom;
    	}
     
    	public void setNom(String nom) {
    		this.nom = nom;
    	}
     
    	public String getType() {
    		return type;
    	}
     
    	public Departement depart;
     
    	public void setType(String type) {
    		this.type = type;
    	}
     
    	public String getConseq() {
    		return conseq;
    	}
     
    	public void setConseq(String conseq) {
    		this.conseq = conseq;
    	}
     
    	public int getGravite() {
    		return gravite;
    	}
     
    	public void setGravite(int gravite) {
    		this.gravite = gravite;
    	}
     
    	public String getDescription() {
    		return description;
    	}
     
    	public void setDescription(String description) {
    		this.description = description;
    	}
     
    	public long getProbabilite() {
    		return probabilite;
    	}
     
    	public void setProbabilite(long probabilite) {
    		this.probabilite = probabilite;
    	}
     
    }
    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    package modele;
     
    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.GenerationType;
    import javax.persistence.Id;
    import javax.persistence.Table;
     
    @Entity
    @Table(name = "Departement")
    public class Departement {
     
    	private static String nbr_personel_forme = null;
     
    	@Id
    	@GeneratedValue(strategy = GenerationType.AUTO)
    	@Column(name = "id_dep")
    	private int id_dep;
     
    	@Column(name = "nom")
    	private String nom;
     
    	@Column(name = "chef_de_securite")
    	private String chef_de_securite;
    	@Column(name = "nbr_de_personel")
    	private String nbr_de_personel;
    	@Column(name = "nbr_personel_forme")
    	private String nbr_personel_fomre;
     
     
     
    	@Column(name = "nbr_personel_sensibilise")
    	private String nbr_personel_sensibilise;
     
    	public Departement(String nom, String chef_de_securite,
    			String nbr_personel_forme, String nbr_personel_sensibilise,
    			 String nbr_de_personel) {
     
    		this.nbr_personel_sensibilise = nbr_personel_sensibilise;
    		this.nbr_personel_fomre = nbr_personel_forme;
    		this.nom = nom;
    		this.nbr_de_personel = nbr_de_personel;
    		this.chef_de_securite = chef_de_securite;
    	}
     
    	public Departement() {
    	}
     
    	public String getnom() {
    		return this.nom;
    	}
     
    	public void setnom(String nom) {
    		this.nom = nom;
    	}
     
    	public String getchef_de_securite() {
    		return this.chef_de_securite;
    	}
     
    	public void setchef_de_securite(String chef_de_securite) {
    		this.chef_de_securite = chef_de_securite;
    	}
     
    	public String getnbr_personel_forme() {
    		return this.nbr_personel_fomre;
    	}
     
    	public void setnbr_personel_forme(String nbr_personel_forme) {
    		this.nbr_personel_fomre = nbr_personel_forme;
    	}
     
    	public String getnbr_personel_sensibilise() {
    		return this.nbr_personel_sensibilise;
    	}
     
    	public void setnbr_personel_sensibilise(String nbr_personel_sensibilise) {
    		this.nbr_personel_sensibilise = nbr_personel_sensibilise;
    	}
     
    	public String getnbr_de_personel() {
    		return this.nbr_de_personel;
    	}
     
    	public void setnbr_de_personel(String nbr_de_personel) {
    		this.nbr_de_personel = nbr_de_personel;
    	}
     
     
    }
    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
    public class RechercheServices {
    	private RisqueDAO fDAO = new RisqueDAOHibernate();
     
    	public Risque checkRisqueNom(String nom) throws RechercheExceptions {
    		Risque f = fDAO.findByNom(nom);
    		// Si le titre correspond à une Formation, on vérifie le titre associé
    		if (f != null)
     
    			if (f.getNom().equals(nom))
    				return f;
     
    			else
    				throw new RechercheExceptions(
    						"Aucun résultat correspondant au titre");
    		else
    			throw new RechercheExceptions("Aucun risque");
     
    	}
     
    }
    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    protected void doPost(HttpServletRequest request,
    			HttpServletResponse response) throws ServletException, IOException {
    		// Récupération des données du formulaire d'index.jsp
    		String nom = request.getParameter("titreSaisi");
    		System.out.println("titre" + nom);
     
    		// Si tous les champs du formulaire ont été remplis
    		if (!"".equals(nom)) {
    			RechercheServices uServices = new RechercheServices();
    			System.out.println("d5al");
    			try {
     
    				// Si le service valide l'utilisateur
    				if (uServices.checkRisqueNom(nom) != null) {
     
    					Risque f = uServices.checkRisqueNom(nom);
     
    					HttpSession session = request.getSession();
    					String ATT_SESSION_RISQUE = "sessionFormation";
    					session.setAttribute(ATT_SESSION_RISQUE, f);
    					String ATT_RISQUE = "f";
    					request.setAttribute(ATT_RISQUE, f);
    					String nomR = f.getNom();
    					String type = f.getType();
    					String descript = f.getDescription();
    					String conseq = f.getConseq();
    					Integer gravite = f.getGravite();
    					Long prob = f.getProbabilite();
     
    					request.setAttribute("nom", nomR);
    					request.setAttribute("type", type);
    					request.setAttribute("descript", descript);
    					request.setAttribute("conseq", conseq);
    					request.setAttribute("gravite", gravite);
    					request.setAttribute("prob", prob);
     
    					System.out.println("9rit titre");
    					getServletContext().getRequestDispatcher("/resRechAd.jsp")
    							.forward(request, response);
    				}
    			} catch (RechercheExceptions e) {
    				// Sinon, renvoi vers le formulaire avec le message d'erreur
    				// retourné par le service
    				request.setAttribute("erreur", e.getMessage());
    				getServletContext().getRequestDispatcher("/RechercheAd.jsp")
    						.forward(request, response);
    			}
    		}
    		// Si le formulaire est incomplet, renvoi vers le formulaire avec un
    		// message d'erreur
    		else {
    			request.setAttribute("erreur", "Saisies insuffisantes");
    			getServletContext().getRequestDispatcher("/RechercheAd.jsp")
    					.forward(request, response);
    		}
    	}
    "Scientists dream about doing great things. Engineers do them.”

    La réussite après tant de travail est un sentiment à vivre

    Si ton message est résolu, il y a un bouton qui est fait pour ça :
    Il se trouve tout en bas de la conversation !

    N'oublie pas que si ce message t'as aidé, tu peux voter pour lui en utilisant

  2. #2
    Membre averti Avatar de Doopeijii
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2012
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 215
    Points : 323
    Points
    323
    Par défaut
    Une réponse qui va pouvoir t'aider (je l'espère) : regarde du côté de la relation de mappage "manyToMany" qui correspond à ta relation entre risque et departement.

    Tu trouveras certainement des exemples, mais oui ce que tu propose me semble une bonnes solution : avoir dans chaque risque une liste de departement (et/ou l'inverse, je ne sais pas si c'est nécessaire)
    Un petit n'est pas de trop si le message est utile

    "Vous êtes très nombreux dans votre cas? J'ai jamais pensé que les cons étaient en minorité..."

  3. #3
    Membre actif Avatar de janyoura
    Femme Profil pro
    étudiante ingénierie informatique
    Inscrit en
    Mars 2012
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : étudiante ingénierie informatique

    Informations forums :
    Inscription : Mars 2012
    Messages : 365
    Points : 279
    Points
    279
    Par défaut
    Citation Envoyé par Doopeijii Voir le message
    Une réponse qui va pouvoir t'aider (je l'espère) : regarde du côté de la relation de mappage "manyToMany" qui correspond à ta relation entre risque et departement.

    Tu trouveras certainement des exemples, mais oui ce que tu propose me semble une bonnes solution : avoir dans chaque risque une liste de departement (et/ou l'inverse, je ne sais pas si c'est nécessaire)
    oui je le propose mais je ne sais pas comment le faire
    "Scientists dream about doing great things. Engineers do them.”

    La réussite après tant de travail est un sentiment à vivre

    Si ton message est résolu, il y a un bouton qui est fait pour ça :
    Il se trouve tout en bas de la conversation !

    N'oublie pas que si ce message t'as aidé, tu peux voter pour lui en utilisant

  4. #4
    Membre averti Avatar de Doopeijii
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2012
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 215
    Points : 323
    Points
    323
    Par défaut
    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
    public class A{
        @Id
        int idA;
        @ManyToMany(mappedBy="b")
        Set<B> objetsB;
        /*
         *...
         */
    }
    public class B{
        @Id
        int idB;
        @ManyToMany
        @JoinTable/* la je sais plus de mémoire */
        Set<A> objetsA;
        /*
         *...
         */
    }
    C'est valable si tu as une table A et une table B ainsi qu'une table de relation (selon ton cas tu n'as certainement pas le choix) A-B.
    Dans ce cas là, ta relation est dirigée par B et le JoinTable te sers à préciser comment faire les jointures dans les deux sens (en cherchant tu trouveras )

    J'ai trouvé cet exemple que je n'ai pas lu mais qui semble utile :
    Ici !
    Un petit n'est pas de trop si le message est utile

    "Vous êtes très nombreux dans votre cas? J'ai jamais pensé que les cons étaient en minorité..."

Discussions similaires

  1. Relation entre deux classes ?
    Par kanaziwok dans le forum C++
    Réponses: 12
    Dernier message: 17/05/2010, 22h39
  2. Réponses: 5
    Dernier message: 17/08/2005, 12h40
  3. [EJBQL] [CMP] Relation entre deux beans
    Par salome dans le forum Java EE
    Réponses: 1
    Dernier message: 11/07/2005, 23h50
  4. Relation entre deux tables
    Par manel007 dans le forum Langage SQL
    Réponses: 5
    Dernier message: 04/03/2005, 16h54

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