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:
Je pense que cela est dûe au fait que Equipe n'est pas sauvé avant Pecheur.
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
Voici mes mappings:
Enduro
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
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>
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 <?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>
Si quelqu'un comprend comment fonctionne cascade, merci de m'aider !!
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>
J'attends vos réponse avec impatience
Partager