Problème lors d'un delete avec une relation one-to-many
bonjour,
j'ai une relation entre 2 tables customer n--1 admin:un admin peut avoir plusieurs customer et un customer appartient a un seul admin.
j'ai mappe l'association des deux cotes .lajout d'un customer fonctionne bien mais si je veux supprimer un admin (et bien sure les customer liee serons supprime) j'aurais une exception de type :
Code:
1 2
|
could not delete collection: [tn.tucs.core.personnemanagement.Personneadmin.Customer#5] |
j'ai utilisé la parametre cascade="all" ,cascade="delte" et cascade="delete-orphin" mais ces toujour la meme erreur
voila le fichier Customer.hbm.xml:
Code:
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
| <?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 26 oct. 2011 11:58:48 by Hibernate Tools 3.4.0.CR1 -->
<hibernate-mapping>
<class name="tn.tucs.core.customermanagement.Customer" table="CUSTOMER">
<id name="IdCustomer" type="int">
<column name="IDCUSTOMER" />
<generator class="sequence">
<param name="sequence">seq_customer_id</param>
</generator>
</id>
<property name="libelleCustomer" type="java.lang.String">
<column name="LIBELLECUSTOMER" />
</property>
<property name="MatriculeFiscale" type="java.lang.String">
<column name="matriculecustomer" />
</property>
<property name="FaxCustomer" type="java.lang.String">
<column name="FAXCUSTOMER" />
</property>
<property name="TeleCustomer" type="java.lang.String">
<column name="TELCUSTOMER" />
</property>
<property name="SiteWeb" type="java.lang.String">
<column name="sitecustomer" />
</property>
<property name="AdresseCostumer" type="java.lang.String">
<column name="adressecustomer" />
</property>
<property name="PaysCustomer" type="java.lang.String">
<column name="PAYSCUSTOMER" />
</property>
<property name="VilleCustomer" type="java.lang.String">
<column name="VILLECUSTOMER" />
</property>
<property name="EMailCustomer" type="java.lang.String">
<column name="MAILCUSTOMER" />
</property>
<property name="MobileCustomer" type="java.lang.String">
<column name="MOBILECUSTOMER" />
</property>
<many-to-one name="Admin" class="tn.tucs.core.personnemanagement.Personneadmin" column="IDADMIN" not-null="true" lazy="false"/> <!-- not-null="true" -->
<!-- <set name="users" cascade="all-delete-orphan" >
<key column="IDCUSTOMER" />
<one-to-many class="tn.tucs.core.personnemanagement.Personneuser" />
</set>-->
</class>
</hibernate-mapping> |
et le fichier Personneadmin.hbm.xml
Code:
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
| <?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 26 oct. 2011 11:02:14 by Hibernate Tools 3.4.0.CR1 -->
<hibernate-mapping>
<class name="tn.tucs.core.personnemanagement.Personneadmin" table="PERSONNEADMIN">
<id name="idadmin" >
<column name="IDADMIN" />
<generator class="sequence">
<param name="sequence">seq_admin_id</param>
</generator>
</id>
<property name="nomadmin" type="java.lang.String">
<column name="NOMADMIN" />
</property>
<property name="prenomadmin" type="java.lang.String">
<column name="PRENOMADMIN" />
</property>
<property name="cinadmin" type="java.lang.String">
<column name="CINADMIN" />
</property>
<property name="teladmin" type="java.lang.String">
<column name="TELADMIN" />
</property>
<property name="adresseadmin" type="java.lang.String">
<column name="ADRESSEADMIN" />
</property>
<property name="cpadmin" >
<column name="CPADMIN" />
</property>
<property name="villeadmin" type="java.lang.String">
<column name="VILLEADMIN" />
</property>
<property name="paysadmin" type="java.lang.String">
<column name="PAYSADMIN" />
</property>
<property name="loginadmin" type="java.lang.String">
<column name="LOGINADMIN" />
</property>
<property name="pswadmin" type="java.lang.String">
<column name="PSWADMIN" />
</property>
<set name ="Customer" cascade="delete" lazy="false">
<key column="IDADMIN" />
<one-to-many class="tn.tucs.core.customermanagement.Customer"/>
</set>
</class>
</hibernate-mapping> |
la table customer:
Code:
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
| -- Table: customer
-- DROP TABLE customer;
CREATE TABLE customer
(
idcustomer integer NOT NULL,
libellecustomer character varying(100),
matriculecustomer character varying(100),
faxcustomer character varying(50),
telcustomer character varying(50),
sitecustomer character varying(200),
payscustomer character varying(100),
villecustomer character varying(100),
mailcustomer character varying(150),
mobilecustomer character varying(50),
adressecustomer character varying(150),
idadmin integer NOT NULL,
CONSTRAINT "idCustomer" PRIMARY KEY (idcustomer),
CONSTRAINT idadmin FOREIGN KEY (idadmin)
REFERENCES personneadmin (idadmin) MATCH FULL
ON UPDATE NO ACTION ON DELETE NO ACTION
)
WITH (
OIDS=FALSE
);
ALTER TABLE customer OWNER TO postgres; |
et la table admin:
Code:
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
| -- Table: personneadmin
-- DROP TABLE personneadmin;
CREATE TABLE personneadmin
(
idadmin bigint NOT NULL,
nomadmin character varying(50),
prenomadmin character varying(50),
cinadmin character varying(50) NOT NULL,
teladmin character varying(20),
adresseadmin character varying(150),
cpadmin bigint,
villeadmin character varying(50),
paysadmin character varying(50),
loginadmin character varying(50),
pswadmin character varying(50),
CONSTRAINT idadmin PRIMARY KEY (idadmin),
CONSTRAINT cin_unique UNIQUE (cinadmin),
CONSTRAINT "login-unique" UNIQUE (loginadmin)
)
WITH (
OIDS=FALSE
);
ALTER TABLE personneadmin OWNER TO postgres; |
je vous serais reconnaisant
merci