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 :
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 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
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
 
 
}
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
 
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
 
 
}
et voila l'erreur que j'ai lorsque j'appel create(client);

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