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 :

probleme avec une clé etrangere


Sujet :

JPA Java

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2009
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 22
    Points : 19
    Points
    19
    Par défaut probleme avec une clé etrangere
    Salut a tous,
    j'ai les 2 table suivantes:
    parent=>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CREATE TABLE parent
    (
      nom character varying NOT NULL,
      CONSTRAINT parent_pkey PRIMARY KEY (nom)
    )
    enfant=>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    CREATE TABLE enfant
    (
      "nomEnfant" character varying NOT NULL,
      parent character varying,
      CONSTRAINT enfant_pkey PRIMARY KEY ("nomEnfant"),
      CONSTRAINT enfant_parent_fkey FOREIGN KEY (parent)
          REFERENCES parent (nom) MATCH SIMPLE
          ON UPDATE NO ACTION ON DELETE NO ACTION
    )
    l'insertion d'un parent se fait sans probleme mais je rencontre un probleme lors de l'insertion d'un enfant dans la base
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public void ajoutEnfantParent(String nomEnfant, String nomParent) {
            //entité parent
            Parent p=new Parent(nomParent);
            //entité enfant
            Enfant e=new Enfant(nomEnfant);
     
     
           e.setParent(p);
            parentFacade.create(p);
            enfantFacade.create(e);
     
        }
    j'ai l'exception suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    L'élément du batch 0 insert into enfant (parent, nomEnfant) values (momo, toto) a été annulé. Appeler getNextException pour en connaître la cause.
    SQL Error: 0, SQLState: 42703
    ERROR: column "nomenfant" of relation "enfant" does not exist
    Could not synchronize database state with session
    voila les entities
    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
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
     
    package entity;
     
    import java.io.Serializable;
    import javax.persistence.Basic;
    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.Id;
    import javax.persistence.JoinColumn;
    import javax.persistence.ManyToOne;
    import javax.persistence.NamedQueries;
    import javax.persistence.NamedQuery;
    import javax.persistence.Table;
     
    /**
     *
     * @author Hamza
     */
    @Entity
    @Table(name = "enfant")
    @NamedQueries({@NamedQuery(name = "Enfant.findAll", query = "SELECT e FROM Enfant e"), @NamedQuery(name = "Enfant.findByNomEnfant", query = "SELECT e FROM Enfant e WHERE e.nomEnfant = :nomEnfant")})
    public class Enfant implements Serializable {
        private static final long serialVersionUID = 1L;
        @Id
        @Basic(optional = false)
        @Column(name = "nomEnfant")
        private String nomEnfant;
        @JoinColumn(name = "parent", referencedColumnName = "nom")
        @ManyToOne
        private Parent parent;
     
        public Enfant() {
        }
     
        public Enfant(String nomEnfant) {
            this.nomEnfant = nomEnfant;
        }
     
        public String getNomEnfant() {
            return nomEnfant;
        }
     
        public void setNomEnfant(String nomEnfant) {
            this.nomEnfant = nomEnfant;
        }
     
        public Parent getParent() {
            return parent;
        }
     
        public void setParent(Parent parent) {
            this.parent = parent;
        }
     
        @Override
        public int hashCode() {
            int hash = 0;
            hash += (nomEnfant != null ? nomEnfant.hashCode() : 0);
            return hash;
        }
     
        @Override
        public boolean equals(Object object) {
            // TODO: Warning - this method won't work in the case the id fields are not set
            if (!(object instanceof Enfant)) {
                return false;
            }
            Enfant other = (Enfant) object;
            if ((this.nomEnfant == null && other.nomEnfant != null) || (this.nomEnfant != null && !this.nomEnfant.equals(other.nomEnfant))) {
                return false;
            }
            return true;
        }
     
        @Override
        public String toString() {
            return "entity.Enfant[nomEnfant=" + nomEnfant + "]";
        }
     
    }
    Que faire ?
    Merci d'avance.

  2. #2
    Membre averti Avatar de Shinzul
    Homme Profil pro
    Lecteur assidu de code source
    Inscrit en
    Janvier 2008
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Lecteur assidu de code source
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2008
    Messages : 174
    Points : 333
    Points
    333
    Par défaut
    Le problème vient du fait que hibernate ne trouve pas la colonne nomenfant dans la table enfant.

    Problème : ton nom de colonne dans ta classe est bien nomEnfant.

    Essaye de mettre tout en minuscule dans ta table et dans tes annotation et regarde si ca marche mieux

  3. #3
    Membre à l'essai
    Inscrit en
    Février 2009
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 22
    Points : 19
    Points
    19
    Par défaut

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Probleme de conflit avec une clé etrangere
    Par amani1 dans le forum Windows Forms
    Réponses: 8
    Dernier message: 04/04/2014, 11h31
  2. Réponses: 1
    Dernier message: 25/09/2006, 10h18
  3. Probleme avec une table vide
    Par king dans le forum Bases de données
    Réponses: 5
    Dernier message: 20/03/2004, 14h24
  4. au secour probleme avec une requete...
    Par soufiane59 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 26/09/2003, 10h28
  5. probleme avec une division par zéro
    Par jcharleszoxi dans le forum Langage SQL
    Réponses: 2
    Dernier message: 26/03/2003, 18h14

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