Bonjour,
j'ai un objet Client qui contient une liste d'adresse mail, lors de creation de mon client, je veux qu'il m'insert sa liste d'adresse mail, sachant que l'identificateur client est généré automatiquement dans ma base (MySql), j'ai toujours l'erreur suivant : client_id (de la table adresse mail) ne peut etre null !!!
normalement, c'est hibernate qui gere ca ? d'autant que je ne connais pas l'identifiant de mon client jusqu'a son insertion en base.
voila le code que j'ai
1- mapping client
<?xml version="1.0"?>
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 <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="fr.icdc.dei.erel.metier.entite.impl"> <class name="ClientImpl" table="TA_CLIENT"> <id column="CLIENT_ID" name="clientID" type="integer" > <generator class="native" /> </id> ..... (autre proorièté) <set name="ListAdresseMail" cascade="all" lazy="true" > <key column="CLIENT_ID"/> <one-to-many class="AdresseMailImpl"/> </set> </class> </hibernate-mapping>
Mapping adresse mail :
classe Client
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 <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <!-- Generated 3 sept. 2012 11:56:49 by Hibernate Tools 3.4.0.CR1 --> <hibernate-mapping> <class name="fr.icdc.dei.erel.metier.entite.impl.AdresseMailImpl" table="TA_ADRESSE_MAIL" > <id name="adresseMailId" type="java.lang.Integer"> <column name="ADRESSE_MAIL_ID" /> <generator class="native" /> </id> <property name="adresse" type="string"> <column name="ADRESSE" not-null="true" /> </property> <property name="principale" type="boolean"> <column name="PRINCIPALE" not-null="true" /> </property> <property name="clientID" type="integer" > <column name="CLIENT_ID" /> </property> </class> </hibernate-mapping>
classe adresse mail
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 public class ClientImpl implements Serializable, ObjectEntite { /** * */ private static final long serialVersionUID = 1L; private int hashCod = Integer.MIN_VALUE; // primary key private java.lang.Integer clientID; // fields private Set<AdresseMailImpl> listAdresseMail; // constructors public ClientImpl () { } **** la suite getter and setter }
et voila l'erreur que j'ai lorsque j'appel create(client);
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 public class AdresseMailImpl implements java.io.Serializable { private Integer adresseMailId; private Integer clientID; private String adresse; private boolean principale; public AdresseMailImpl() { } **** suite getter and setter }
Hibernate: insert into TA_CLIENT (DECLARATION_LIGNE, DATE_BASCULE_DECLARATION_LIGNE, LA, DATE_MAJ, LEP, FRANCS_PACIFIQUE, UTILISATEUR_MAJ, CDC_FIDELIA, LBOPT, RIDET, DATE_CLOTURE, ENVOI_COURRIERS, LDD, LAOPT, RAISON_SOCIALE, STATUT_CLIENT_ID, TIERS_ID, TYPE_RESEAU_ID) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
Hibernate: insert into TA_ADRESSE_MAIL (ADRESSE, PRINCIPALE, CLIENT_ID) values (?, ?, ?)
- [26/09/2012 15:17:32] ERROR org.hibernate.util.JDBCExceptionReporter - Column 'CLIENT_ID' cannot be null
- [26/09/2012 15:17:32] ERROR org.hibernate.util.JDBCExceptionReporter - Column 'CLIENT_ID' cannot be null
- [26/09/2012 15:17:32] ERROR fr.icdc.dei.erel.persistance.service.impl.hibernate.ClientHibernatePersistenceServiceImpl - [UID:14D3BE5D22DC2B60D1970AE037A57821] Erreur lors de l'execution de la méthode insertClient[EXID:31680683-713.7677276127041]
fr.icdc.dei.fwk.connection.ConnectionException: erreur lors de l'execution de la méthode create
avez vous une idée svp ???
Merci par avance
Partager