Bonjour,
je ne sais pas du tout comment gérer mon mapping.

Context:

J'ai 3 types d'objets: enduro, equipe, pecheur

Enduro peut contenir plusieurs equipe. Equipe doit contenir 2 pecheurs.

Problème: je voudrais que lorsque que je sauvegarde un enduro qui contient des equipes et des pecheurs, tout se sauvegarde d'un coup à l'appel de la méthode saveOrUpdate().

Pour l'instant, j'arrive à sauvegarder un enduro tout seul mais pas avec le reste.

L'erreur actuelle est:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
org.hibernate.exception.ConstraintViolationException: could not insert: [com.enduro.entites.Pecheur]
com.mysql.jdbc.exceptions.MySQLIntegrityConstraintViolationException: Column 'idEquipe' cannot be null
Je pense que cela est dûe au fait que Equipe n'est pas sauvé avant Pecheur.

Voici mes mappings:

Enduro

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
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
	"-//Hibernate/Hibernate Mapping DTD//EN"
	"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd" >
 
<hibernate-mapping package="com.enduro.entites">
	<class name="Enduro" table="enduro">
		<id
			column="id"
			name="Id"
			type="integer"
			unsaved-value="0"
		>
			<generator class="native" />
		</id>
		<property
			column="poids"
			length="20"
			name="Poids"
			not-null="false"
			type="string"
		 />
		<property
			column="titre"
			length="20"
			name="Titre"
			not-null="true"
			type="string"
		 />
		<property
			column="dateDebut"
			name="DateDebut"
			not-null="false"
			type="timestamp"
		 />
		<property
			column="dateFin"
			name="DateFin"
			not-null="false"
			type="timestamp"
		 />
 
		<set inverse="true" name="Equipes" cascade="all">
			<key column="idEnduro" />
			<one-to-many class="Equipe" />
		</set>
	</class>
</hibernate-mapping>
Equipe

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
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
	"-//Hibernate/Hibernate Mapping DTD//EN"
	"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd" >
 
<hibernate-mapping package="com.enduro.entites">
	<class name="Equipe" table="equipe">
		<id
			column="id"
			name="Id"
			type="integer"
			unsaved-value="0"
		>
			<generator class="native" />
		</id>
		<property
			column="nom"
			length="20"
			name="Nom"
			not-null="true"
			type="string"
		 />
		<many-to-one
			class="Enduro"
			name="Enduro"
			not-null="true"			
		>
			<column name="idEnduro" />
		</many-to-one>
		<many-to-one
			class="Pecheur"
			name="Pecheur1"
			not-null="true"
			cascade="all"
		>
			<column name="idPecheur1" />
		</many-to-one>
		<many-to-one
			class="Pecheur"
			name="Pecheur2"
			not-null="true"
			cascade="all"
		>
			<column name="idPecheur2" />
		</many-to-one>
	</class>
</hibernate-mapping>
Pecheur

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
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
	"-//Hibernate/Hibernate Mapping DTD//EN"
	"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd" >
 
<hibernate-mapping package="com.enduro.entites">
	<class name="Pecheur" table="pecheur">
		<id
			column="id"
			name="Id"
			type="integer"
			unsaved-value="0"
		>
			<generator class="native" />
		</id>
		<property
			column="codePostal"
			length="10"
			name="CodePostal"
			not-null="false"
			type="integer"
		 />
		<property
			column="ville"
			length="20"
			name="Ville"
			not-null="false"
			type="string"
		 />
		<property
			column="telephone"
			length="10"
			name="Telephone"
			not-null="false"
			type="integer"
		 />
		<property
			column="adresse"
			length="20"
			name="Adresse"
			not-null="false"
			type="string"
		 />
		<property
			column="prenom"
			length="20"
			name="Prenom"
			not-null="true"
			type="string"
		 />
		<property
			column="email"
			length="20"
			name="Email"
			not-null="false"
			type="string"
		 />
		<property
			column="nom"
			length="20"
			name="Nom"
			not-null="true"
			type="string"
		 />
 
		<many-to-one
			class="Equipe"
			name="Equipe"
			not-null="true"
		>
			<column name="idEquipe" />
		</many-to-one>
 
		<set inverse="true" name="Prises" cascade="all">
			<key column="idPecheur" />
			<one-to-many class="Prise" />
		</set>
	</class>
</hibernate-mapping>
Si quelqu'un comprend comment fonctionne cascade, merci de m'aider !!

J'attends vos réponse avec impatience