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

Java EE Discussion :

Annotation @one to one


Sujet :

Java EE

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Août 2009
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 72
    Par défaut Annotation @one to one
    bonjour

    je travaille sur un projet ejb et dans ma base de donnée mysql j'ai deux tables article et promotion avec une relation 1.1 .

    j'ai créé deux bean entity comme suit :

    la table article :
    @Entity

    public class article implements Serializable{

    @Id
    @OneToOne(mappedBy ="article")
    private int id_article;


    private String titre;
    private String ref;
    private Double pu;
    private int qte;
    private String type;
    private Date datesortie;

    public article(){
    super();
    }

    public article(String titre, String ref, Double pu, int qte,
    String type, Date datesortie) {
    super();

    this.titre = titre;
    this.ref = ref;
    this.pu = pu;
    this.qte = qte;
    this.type = type;
    this.datesortie = datesortie;
    }
    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    public int getId_article() {
    return id_article;
    }
    public void setId_article(int idArticle) {
    id_article = idArticle;
    }.....
    et la table promotion :

    @Entity
    public class promotion implements Serializable{

    @Id
    private int id_promo;

    @OneToOne
    @JoinColumn(name = "id_article")
    private int id_article;
    private Double prix_reduc;
    private Date date_debut;
    private Date date_fin;


    public promotion(){
    super();
    }
    public promotion(int idArticle, Double tauxReduction, Date dateDebut,
    Date dateFin) {
    super();
    id_article = idArticle;
    prix_reduc = tauxReduction;
    date_debut = dateDebut;
    date_fin = dateFin;
    }

    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    public int getId_promo() {
    return id_promo;
    }....
    maintenant je veut à partir des promotions connaitre les articles , j'ai déja les id_article et c'est possible de le faire avec une requete mais comment on le fait avec le bean entity càd avoir une méthode getters qui récupèrent les articles ????

    merci d'avance

  2. #2
    Membre confirmé
    Inscrit en
    Août 2009
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 41
    Par défaut
    Tu utilises mal la jointure entre les deux.
    Cherche des exemples sur google mais en gros tu devrais avoir :

    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
     
    @Entity
     
    public class article implements Serializable{
     
    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    private int id_article;
     
    @OneToOne(mappedBy ="article")
    private Promotion promotion;
     
    private String titre;
    private String ref;
    private Double pu;
    private int qte;
    private String type;
    private Date datesortie;
     
    public article(){
    super();
    }
     
    public article(String titre, String ref, Double pu, int qte,
    String type, Date datesortie) {
    super();
     
    this.titre = titre;
    this.ref = ref;
    this.pu = pu;
    this.qte = qte;
    this.type = type;
    this.datesortie = datesortie;
    }
     
     
    public int getId_article() {
    return id_article;
    }
    public void setId_article(int idArticle) {
    id_article = idArticle;
    }.....
    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
     
    @Entity
    public class promotion implements Serializable{
     
    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    private int id_promo;
     
    @OneToOne
    @JoinColumn(name = "id_article")
    private Article article;
     
    private Double prix_reduc;
    private Date date_debut;
    private Date date_fin;
     
     
    public promotion(){
    super();
    }
    public promotion(int idArticle, Double tauxReduction, Date dateDebut,
    Date dateFin) {
    super();
    id_article = idArticle;
    prix_reduc = tauxReduction;
    date_debut = dateDebut;
    date_fin = dateFin;
    }
     
     
    public int getId_promo() {
    return id_promo;
    }....
    Et la tu as une relation bidirectionnelle.

    Défini une seule fois @Id dans une entity.

  3. #3
    Membre confirmé
    Inscrit en
    Août 2009
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 72
    Par défaut
    bonjour

    mais dans la classe promotion ou est passé id_article??

    si je veux insérer dans ma base de données il me faut le champ id_article ??

  4. #4
    Membre confirmé
    Inscrit en
    Août 2009
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 41
    Par défaut
    Citation Envoyé par meriyem Voir le message
    bonjour

    mais dans la classe promotion ou est passé id_article??

    si je veux insérer dans ma base de données il me faut le champ id_article ??
    Attention, JPA est une abstraction de la base de donnée, il ne représente pas tel quel tes tables. C'est la la magie et l'intérêt de l'ORM.
    En java tu voie une classe qui pointe vers une autre, en pratique JPA va t'effectuer le mapping vers deux tables liées entre elles par un id.
    Essaye de bien comprendre la logique et non pas de transposer en java ce que tu ferai sur ta base de donnée.

  5. #5
    Membre confirmé
    Inscrit en
    Août 2009
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 72
    Par défaut
    oui je ferai mieux de me documenter un peu !!!

    je suis débutante en ejb, c'est mon premier projet et il ya plein de chose que j'ignore

    merci en tout cas

Discussions similaires

  1. [Hibernate]Mapping relation one-to-one
    Par K-Kaï dans le forum Hibernate
    Réponses: 9
    Dernier message: 23/06/2006, 16h02
  2. Réponses: 3
    Dernier message: 08/06/2006, 17h38
  3. [Hibernate] Mapping de one to one ?
    Par Limod dans le forum Hibernate
    Réponses: 4
    Dernier message: 07/06/2006, 10h06
  4. balise one-to-one hibernate
    Par Staron dans le forum Hibernate
    Réponses: 6
    Dernier message: 17/05/2006, 16h26
  5. [Hibernate][one-to-one] clé etrangère avec des blancs
    Par seb_fou dans le forum Hibernate
    Réponses: 1
    Dernier message: 06/04/2006, 10h28

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