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

Hibernate Java Discussion :

Coder association porteuse


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti

    Profil pro
    Inscrit en
    Juin 2005
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 52
    Par défaut Coder association porteuse
    Bonjour,

    Je suis débutant avec java persistence et hibernate et j'aimerais savoir comment transformer le schema relationnel ci joint (une association 0,n 0,n avec information dit association porteuse).

    En fait j'ai déjà coder l'association mais sans l'information supplémentaire.
    Voici le code existant :
    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
     
    @Entity(name="COMMANDE")
    public class Commande {
     
    	@Id
    	@GeneratedValue(strategy=GenerationType.AUTO)
    	private int id_commande;
     
    	@OneToOne
    	private Client client;
     
    	@OneToMany
    	private Set<Article> lesArticles;
     
    	private int prixTotal;
    ...
    }
    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
     
    @Entity
    public class Article {
     
    	@Id
    	@GeneratedValue
    	private int reference;
    	private String nom;
    	private int prix;
    	private String description;
     
    	@ManyToMany(mappedBy="article")
    	private List<Categorie> categories;
    ...
    }
    Merci d'avance pour vos réponses car là franchement je bloque...
    Images attachées Images attachées  

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 52
    Par défaut
    Il faut indiquer dans ton Entity commande comment faire pour trouver les différents articles liés à celle-ci. Il y a plusieurs façon de faire cela.

    En voici une :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    ...
     
    @JoinTable(name = "commande_article", joinColumns = {@JoinColumn(name = "id_commande", referencedColumnName = "id_commande")}, inverseJoinColumns = {@JoinColumn(name = "reference", referencedColumnName = "reference")})
    @ManyToMany
     
    ...
    Dans ce cas une table commande_article composée de id_commande et reference permet de gérer l'association entre les commandes et les articles.

    Pour l'association entre une commande et un client il faut utiliser @JoinColumn avec @ManyToOne car un client peut avoir plusieurs commandes.
    Il manque aussi la possibilité de commander plusieurs fois le même article (Quantité) ...

    Le tutorial J2EE est très bien pour comprendre les bases de JPA (Partie IV)

  3. #3
    Membre averti

    Profil pro
    Inscrit en
    Juin 2005
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 52
    Par défaut
    Heu.. en fait ct justement l'objet je ce post ! comment faire pour coder une association porteuse avec la quantité dans la table qui fait la jointure avec les deux autres.

    J'ai déjà réussi à faire cela avec le code ci dessus.

    Moi je voudrais qu'hibernate génére le schema relationnel en pièce jointe.

  4. #4
    Membre éclairé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 298
    Par défaut
    Si ta question est comment faire pour générer automatiquement le schéma de base de donnée à partir de ton mapping :
    Tu vas ajouter cette propriétée hibernate dans ton fichier de config persistence.xml ( il existe plusieurs valeurs possibles pour la value ( create, update, etc...)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <property name="hibernate.hbm2ddl.auto" value="create" />
    Pour mapper une association @ManyToMany, maisonneuve01 répond à ta question.

    Si je devais modéliser ton schéma relationnel, je remplacerai ta relation ManyToMany en deux relations OneToMany en mettant une nouvelle entité entre commande et articles.
    Je mettrai une entité : Ligne de Commande et c'est cette entité qui porterai les informations dont tu as besoins.

    La quantité, n'est pas la seule information que doit porter ton association.
    Elle doit aussi porter le prix de l'article (et surement d'autres infos).
    Tes prix d'achats et de ventes pour un article vont certainement évoluer dans le temps.
    Par contre LE prix de vente d'un article dans une commande, ne doit pas changé et doit être mémorisé dans ton entité LigneDeCommande.

  5. #5
    Membre averti

    Profil pro
    Inscrit en
    Juin 2005
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 52
    Par défaut
    Ok merci pour cette réponse.

    C'est un peu la piste que je pensais explorer :
    • Ajouter une entité
    • changer les associations @ManyToMany en relation @OneToMany


    Bon je vais tester ça !

  6. #6
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Ben perso, je ne vois pas de many-to-many...
    Dans ton cas, je passerrais plutôt par un one-to-many de Commande vers ton objet Relation qui contiendrait une relation many-to-one vers Article

    Comment "Est composé de" peut pointer vers plus d'un Article ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Réponses: 1
    Dernier message: 06/07/2007, 10h07
  2. Association porteuse dinformation
    Par lailalachir dans le forum Diagrammes de Classes
    Réponses: 4
    Dernier message: 05/07/2007, 22h04
  3. Association Porteuse de données
    Par snipes dans le forum Langage SQL
    Réponses: 1
    Dernier message: 10/04/2006, 14h39
  4. Association porteuse
    Par Fabouney dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 12/10/2005, 14h50
  5. [Renseignement] Association porteuse de données
    Par Machjaghjolu dans le forum Langage SQL
    Réponses: 5
    Dernier message: 01/06/2005, 13h16

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