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 :

OneToOne question [EJB3 Entity]


Sujet :

Java EE

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 54
    Par défaut OneToOne question
    Bonjour,

    et bien j'ai trois tables

    mysql 5 innoDb netbeans 6.5
    ----- DATABASE STRUCTURE --------------
    une table Pays champ Id integer unsigned clef primaire et auto increment
    champ Pays String
    une table Cpville champ Id integer unsigned clef primaire et auto increment
    champ ville String
    champ cp String
    pays idpays integer unsigned clef etranger avec l'id de la table pays

    une table adresse champ id integer usigned clef primaire et auto increment
    champ idville integer usigned clef etrangere liée a la table ville
    -----------------
    dans mon netbeans je paviens a faire des inserts correcte dans de simple table avec des dates des strings .... via un main ou via une page Jsf

    Netbeans m'a configurer mes entity beans avec "entity beans from database"
    mais je pense que je m'y prend mal pour rendre persistant mes données dans la database.

    voici ma la ou je pense que j'ai un probleme

    -----------------------------

    EntityManagerFactory emf = Persistence.createEntityManagerFactory("Contactsmanager-ejbPU");
    EntityManager em = emf.createEntityManager();
    Pays p = new Pays();
    p.setPays("Belgique");
    Cpville cpv = new Cpville();

    cpv.setCp("7800");
    cpv.setPays(p);
    cpv.setVille("ATH");
    Adresse adr = new Adresse();
    adr.setAdresse("178 CHAUSSEE DE Mons");
    adr.setCpville(cpv);
    adr.setPays(p);
    em.getTransaction().begin();
    em.persist(adr);
    em.getTransaction().commit();
    em.close(); <--- ligne 108
    emf.close();

    --------- Log de Netbeans

    NFO: indexes: [primary]
    10 janv. 2009 10:24:59 org.hibernate.tool.hbm2ddl.SchemaUpdate execute
    INFO: schema update complete
    Exception in thread "main" javax.persistence.PersistenceException: org.hibernate.PropertyValueException: not-null property references a null or transient value: Persitences.Adresse.pays1
    at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:637)
    at org.hibernate.ejb.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:226)
    at Persitences.NewMain.main(NewMain.java:108)
    Caused by: org.hibernate.PropertyValueException: not-null property references a null or transient value: Persitences.Adresse.pays1
    at org.hibernate.engine.Nullability.checkNullability(Nullability.java:72)
    at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:290)
    at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:181)
    at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:107)
    at org.hibernate.ejb.event.EJB3PersistEventListener.saveWithGeneratedId(EJB3PersistEventListener.java:49)
    at org.hibernate.event.def.DefaultPersistEventListener.entityIsTransient(DefaultPersistEventListener.java:131)
    at org.hibernate.event.def.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:87)
    at org.hibernate.event.def.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:38)
    at org.hibernate.impl.SessionImpl.firePersist(SessionImpl.java:618)

    je vous remercie d'avance pour m'éclairer

  2. #2
    Membre Expert Avatar de nathieb
    Homme Profil pro
    DevOps
    Inscrit en
    Mai 2004
    Messages
    1 058
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : DevOps
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 058
    Par défaut enregistrement
    Bonjour,

    je pense qu'il faut enregistrer le pays avant ....

    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
     
    EntityManagerFactory emf = Persistence.createEntityManagerFactory("Contactsmanager-ejbPU");
              EntityManager em = emf.createEntityManager();
              Pays p = new Pays();
              p.setPays("Belgique");
              Cpville cpv = new Cpville();
     
              cpv.setCp("7800");
              cpv.setPays(p);  
              cpv.setVille("ATH");
              Adresse adr = new Adresse();
              adr.setAdresse("178 CHAUSSEE DE Mons");
              adr.setCpville(cpv);
              adr.setPays(p);
              em.getTransaction().begin();
    em.persist(p); -----------< modif
    et activer les logs SQL
    em.persist(adr);
              em.getTransaction().commit();
              em.close(); <--- ligne 108
              emf.close();
    olivier

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 54
    Par défaut
    D'abord merci pour ton aide Nathieb.

    Maintenant j'insère dans la database mais les clefs etrangère sont à null,
    donc j'ai interdit les clefs étrangères d'étre a null et donc plus d'insert ....
    J'essaye de donner a tous les lecteurs le plus d'éléments possible.
    Je placé ici les fichiers , les class de persistences et autre
    aussi pour un simple insert dans une table sans contrainte de null
    l'insert ce passe bien. ou maintenant j'ai un null dans les clefs étrangères
    ou si j'ajoute la contrainte not null sur les clefs étrangére je n'insère pas j'ai une erreur voir plus bas dans la partie log.

    erreur dans les log
    Caused by: com.mysql.jdbc.exceptions.MySQLIntegrityConstraintViolationException: Le champ 'IDpays' ne peut être vide (null)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1011)




    je vous remercie pour votre Aide

    --- Pays ----
    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
    103
    104
     
     
    @Entity
    @Table(name = "pays")
    @NamedQueries({@NamedQuery(name = "Pays.findAll", query = "SELECT p FROM Pays p"), @NamedQuery(name = "Pays.findById", query = "SELECT p FROM Pays p WHERE p.id = :id"), @NamedQuery(name = "Pays.findByPays", query = "SELECT p FROM Pays p WHERE p.pays = :pays")})
    public class Pays implements Serializable {
        private static final long serialVersionUID = 1L;
        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        @Basic(optional = false)
        @Column(name = "id")
        private Integer id;
        @Column(name = "pays")
        private String pays;
        @OneToOne(cascade = CascadeType.ALL, mappedBy = "pays")
        private Adresse adresse;
        @OneToOne(cascade = CascadeType.ALL, mappedBy = "pays1")
        private Adresse adresse1;
        @OneToOne(cascade = CascadeType.ALL, mappedBy = "pays")
        private Cpville cpville;
        @OneToOne(cascade = CascadeType.ALL, mappedBy = "pays1")
        private Cpville cpville1;
     
        public Pays() {
        }
     
        public Pays(Integer id) {
            this.id = id;
        }
     
        public Integer getId() {
            return id;
        }
     
        public void setId(Integer id) {
            this.id = id;
        }
     
        public String getPays() {
            return pays;
        }
     
        public void setPays(String pays) {
            this.pays = pays;
        }
     
        public Adresse getAdresse() {
            return adresse;
        }
     
        public void setAdresse(Adresse adresse) {
            this.adresse = adresse;
        }
     
        public Adresse getAdresse1() {
            return adresse1;
        }
     
        public void setAdresse1(Adresse adresse1) {
            this.adresse1 = adresse1;
        }
     
        public Cpville getCpville() {
            return cpville;
        }
     
        public void setCpville(Cpville cpville) {
            this.cpville = cpville;
        }
     
        public Cpville getCpville1() {
            return cpville1;
        }
     
        public void setCpville1(Cpville cpville1) {
            this.cpville1 = cpville1;
        }
     
        @Override
        public int hashCode() {
            int hash = 0;
            hash += (id != null ? id.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 Pays)) {
                return false;
            }
            Pays other = (Pays) object;
            if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
                return false;
            }
            return true;
        }
     
        @Override
        public String toString() {
            return "Persitences.Pays[id=" + id + "]";
        }
     
    }
    --- Cpville ----

    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
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
     
    @Entity
    @Table(name = "cpville")
    @NamedQueries({@NamedQuery(name = "Cpville.findAll", query = "SELECT c FROM Cpville c"), @NamedQuery(name = "Cpville.findById", query = "SELECT c FROM Cpville c WHERE c.id = :id"), @NamedQuery(name = "Cpville.findByVille", query = "SELECT c FROM Cpville c WHERE c.ville = :ville"), @NamedQuery(name = "Cpville.findByCp", query = "SELECT c FROM Cpville c WHERE c.cp = :cp"), @NamedQuery(name = "Cpville.findByIDpays", query = "SELECT c FROM Cpville c WHERE c.iDpays = :iDpays")})
    public class Cpville implements Serializable {
        private static final long serialVersionUID = 1L;
        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        @Basic(optional = false)
        @Column(name = "id")
        private Integer id;
        @Column(name = "VILLE")
        private String ville;
        @Column(name = "CP")
        private String cp;
        @Column(name = "IDpays")
        private Integer iDpays;
        @OneToOne(cascade = CascadeType.ALL, mappedBy = "cpville")
        private Adresse adresse;
        @OneToOne(cascade = CascadeType.ALL, mappedBy = "cpville1")
        private Adresse adresse1;
        @JoinColumn(name = "id", referencedColumnName = "id", insertable = false, updatable = false)
        @OneToOne(optional = false)
        private Pays pays;
        @JoinColumn(name = "id", referencedColumnName = "id", insertable = false, updatable = false)
        @OneToOne(optional = false)
        private Pays pays1;
     
        public Cpville() {
        }
     
        public Cpville(Integer id) {
            this.id = id;
        }
     
        public Integer getId() {
            return id;
        }
     
        public void setId(Integer id) {
            this.id = id;
        }
     
        public String getVille() {
            return ville;
        }
     
        public void setVille(String ville) {
            this.ville = ville;
        }
     
        public String getCp() {
            return cp;
        }
     
        public void setCp(String cp) {
            this.cp = cp;
        }
     
        public Integer getIDpays() {
            return iDpays;
        }
     
        public void setIDpays(Integer iDpays) {
            this.iDpays = iDpays;
        }
     
        public Adresse getAdresse() {
            return adresse;
        }
     
        public void setAdresse(Adresse adresse) {
            this.adresse = adresse;
        }
     
        public Adresse getAdresse1() {
            return adresse1;
        }
     
        public void setAdresse1(Adresse adresse1) {
            this.adresse1 = adresse1;
        }
     
        public Pays getPays() {
            return pays;
        }
     
        public void setPays(Pays pays) {
            this.pays = pays;
        }
     
        public Pays getPays1() {
            return pays1;
        }
     
        public void setPays1(Pays pays1) {
            this.pays1 = pays1;
        }
     
        @Override
        public int hashCode() {
            int hash = 0;
            hash += (id != null ? id.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 Cpville)) {
                return false;
            }
            Cpville other = (Cpville) object;
            if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
                return false;
            }
            return true;
        }
     
        @Override
        public String toString() {
            return "Persitences.Cpville[id=" + id + "]";
        }
     
    }
    --- Adresse ----

    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
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
     
    @Entity
    @Table(name = "adresse")
    @NamedQueries({@NamedQuery(name = "Adresse.findAll", query = "SELECT a FROM Adresse a"), @NamedQuery(name = "Adresse.findById", query = "SELECT a FROM Adresse a WHERE a.id = :id"), @NamedQuery(name = "Adresse.findByIDville", query = "SELECT a FROM Adresse a WHERE a.iDville = :iDville"), @NamedQuery(name = "Adresse.findByRemarque", query = "SELECT a FROM Adresse a WHERE a.remarque = :remarque")})
    public class Adresse implements Serializable {
        private static final long serialVersionUID = 1L;
        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        @Basic(optional = false)
        @Column(name = "id")
        private Integer id;
        @Column(name = "IDville")
        private Integer iDville;
        @Column(name = "remarque")
        private String remarque;
        @JoinColumn(name = "id", referencedColumnName = "id", insertable = false, updatable = false)
        @OneToOne(optional = false)
        private Pays pays;
        @JoinColumn(name = "id", referencedColumnName = "id", insertable = false, updatable = false)
        @OneToOne(optional = false)
        private Cpville cpville;
        @JoinColumn(name = "id", referencedColumnName = "id", insertable = false, updatable = false)
        @OneToOne(optional = false)
        private Pays pays1;
        @JoinColumn(name = "id", referencedColumnName = "id", insertable = false, updatable = false)
        @OneToOne(optional = false)
        private Cpville cpville1;
     
        public Adresse() {
        }
     
        public Adresse(Integer id) {
            this.id = id;
        }
     
        public Integer getId() {
            return id;
        }
     
        public void setId(Integer id) {
            this.id = id;
        }
     
        public Integer getIDville() {
            return iDville;
        }
     
        public void setIDville(Integer iDville) {
            this.iDville = iDville;
        }
     
        public String getRemarque() {
            return remarque;
        }
     
        public void setRemarque(String remarque) {
            this.remarque = remarque;
        }
     
        public Pays getPays() {
            return pays;
        }
     
        public void setPays(Pays pays) {
            this.pays = pays;
        }
     
        public Cpville getCpville() {
            return cpville;
        }
     
        public void setCpville(Cpville cpville) {
            this.cpville = cpville;
        }
     
        public Pays getPays1() {
            return pays1;
        }
     
        public void setPays1(Pays pays1) {
            this.pays1 = pays1;
        }
     
        public Cpville getCpville1() {
            return cpville1;
        }
     
        public void setCpville1(Cpville cpville1) {
            this.cpville1 = cpville1;
        }
     
        @Override
        public int hashCode() {
            int hash = 0;
            hash += (id != null ? id.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 Adresse)) {
                return false;
            }
            Adresse other = (Adresse) object;
            if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
                return false;
            }
            return true;
        }
     
        @Override
        public String toString() {
            return "Persitences.Adresse[id=" + id + "]";
        }
     
    }
    --- ma class main ou je persiste mes données.

    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
     
      EntityManagerFactory emf = Persistence.createEntityManagerFactory("Contactsmanager-ejbPU");
              EntityManager em = emf.createEntityManager();
              Pays p = new Pays();
              p.setPays("Belgique");
              Cpville cpv = new Cpville();
     
              cpv.setCp("7800");
              cpv.setPays1(p);
              cpv.setPays(p);
              cpv.setVille("ATH");
              Adresse adr = new Adresse();
              adr.setRemarque("Attention pas de clef");
              adr.setCpville(cpv);
              adr.setCpville1(cpv);
              adr.setPays1(p);
              adr.setPays(p);
              em.getTransaction().begin();
              em.persist(p);
     
               em.persist(cpv);
              em.persist(adr);
              em.getTransaction().commit();
              em.close();
              emf.close();
    --- la partie du log netbeans 6.5 interessante ----

    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
     
    11 janv. 2009 10:11:35 org.hibernate.util.JDBCExceptionReporter logExceptions
    ATTENTION: SQL Error: 1048, SQLState: 23000
    11 janv. 2009 10:11:35 org.hibernate.util.JDBCExceptionReporter logExceptions
    GRAVE: Le champ 'IDpays' ne peut être vide (null)
    Exception in thread "main" javax.persistence.EntityExistsException: org.hibernate.exception.ConstraintViolationException: could not insert: [Persitences.Cpville]
            at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:612)
            at org.hibernate.ejb.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:226)
            at Persitences.NewMain.main(NewMain.java:111)
    Caused by: org.hibernate.exception.ConstraintViolationException: could not insert: [Persitences.Cpville]
            at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:71)
            at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
            at org.hibernate.id.insert.AbstractReturningDelegate.performInsert(AbstractReturningDelegate.java:40)
            at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2158)
            at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2638)
            at org.hibernate.action.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:48)
            at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:250)
            at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:298)
            at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:181)
            at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:107)
            at org.hibernate.ejb.event.EJB3PersistEventListener.saveWithGeneratedId(EJB3PersistEventListener.java:49)
            at org.hibernate.event.def.DefaultPersistEventListener.entityIsTransient(DefaultPersistEventListener.java:131)
            at org.hibernate.event.def.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:87)
            at org.hibernate.event.def.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:38)
            at org.hibernate.impl.SessionImpl.firePersist(SessionImpl.java:618)
            at org.hibernate.impl.SessionImpl.persist(SessionImpl.java:592)
            at org.hibernate.impl.SessionImpl.persist(SessionImpl.java:596)
            at org.hibernate.ejb.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:220)
            ... 1 more
    Caused by: com.mysql.jdbc.exceptions.MySQLIntegrityConstraintViolationException: Le champ 'IDpays' ne peut être vide (null)
            at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1011)
            at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
            at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3491)
            at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3423)
            at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1936)
            at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2060)
            at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2542)
            at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1734)
            at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2019)
            at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1937)
            at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1922)
            at org.hibernate.id.IdentityGenerator$GetGeneratedKeysDelegate.executeAndExtract(IdentityGenerator.java:73)
            at org.hibernate.id.insert.AbstractReturningDelegate.performInsert(AbstractReturningDelegate.java:33)
            ... 16 more
    Java Result: 1
    BUILD SUCCESSFUL (total time: 2 seconds)
    Je vous remercie d'avance pour votre aide

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 54
    Par défaut
    ok j'ai compris ce sont mes clefs étrangéres qui sont mal définie
    cela fonctionne parfaitement.

    merci

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

Discussions similaires

  1. Question sur OneToMany OneToOne persist
    Par sekaijin dans le forum JPA
    Réponses: 1
    Dernier message: 10/10/2012, 10h56
  2. Divers questions
    Par Freakazoid dans le forum DirectX
    Réponses: 2
    Dernier message: 06/08/2002, 21h57
  3. question sur les message box !
    Par krown dans le forum Langage
    Réponses: 7
    Dernier message: 02/08/2002, 16h11
  4. Question de faisabilité
    Par lisarasu dans le forum CORBA
    Réponses: 3
    Dernier message: 14/05/2002, 11h26
  5. [HyperFile] 2 questions de débutant
    Par khan dans le forum HyperFileSQL
    Réponses: 2
    Dernier message: 29/04/2002, 23h18

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